精华内容
下载资源
问答
  • Android4.0 状态栏添加屏幕锁定按钮

    千次阅读 2013-01-07 15:53:23
    1>frameworks\base\packages\SystemUI\res\layout-sw...//锁定为当前方向  }  } catch (RemoteException exc) {  Log.w(TAG, "Unable to save auto-rotate setting");}  }

    1>frameworks\base\packages\SystemUI\res\layout-sw600dp\status_bar.xml:

    <com.android.systemui.statusbar.policy.KeyButtonView 
    android:id="@+id/sysbar_screenrotate"
    android:layout_width="80dip" 
    android:layout_height="match_parent"
    android:src="@drawable/ic_sysbar_rotate" 
    systemui:glowBackground="@drawable/ic_sysbar_highlight" />
    android:visibility="visible"


    2>frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\tablet\TabletStatusBar.java:

    import android.content.ServiceConnection; 
    import android.content.ComponentName;
    import android.os.Messenger;
    import android.util.Log;
    import android.os.ServiceManager;
    import android.view.Surface;
    import android.view.IWindowManager;//cao
    import android.provider.Settings;
    import android.database.ContentObserver;
    import android.content.ContentResolver;


    public static boolean AUTO_ROTATE = true; //cao
    public static final String TAG = "TabletStatusBar";


    View mRecentButton;
    View mScreenRotate;//cao


    private ContentObserver mScreenRotationObserver = new ContentObserver(new Handler()) {
            @Override
            public void onChange(boolean selfChange) {
                onScreenRotateChanged();
            }
        };
     public void onScreenRotateChanged() {
                     final Context context = mContext;
                    ContentResolver resolver = mContext.getContentResolver();
                    Slog.d(TAG, "onScreenRotateChanged-------------");
                    if (Settings.System.getInt(resolver,Settings.System.ACCELEROMETER_ROTATION, 0) != 0) {
                            AUTO_ROTATE=true;
                            ((ImageView)mScreenRotate).setImageResource(R.drawable.ic_sysbar_rotate);
                    } else {
                        ((ImageView)mScreenRotate).setImageResource(R.drawable.ic_sysbar_rotate_lock);
                         AUTO_ROTATE=false;
                    }            
        }


     protected View makeStatusBarView() {

    //cao 20121228
    ContentResolver resolver = mContext.getContentResolver();
    resolver.registerContentObserver(
                    Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true,
                    mScreenRotationObserver);


    mScreenRotate = mNavigationArea.findViewById(R.id.sysbar_screenrotate);
    //set rotate icon
    if (Settings.System.getInt(resolver,Settings.System.ACCELEROMETER_ROTATION, 0) == 0)
    ((ImageView)mScreenRotate).setImageResource(R.drawable.ic_sysbar_rotate_lock);
    mScreenRotate.setOnClickListener(mOnClickListener);


     private View.OnClickListener mOnClickListener = new View.OnClickListener() {
            public void onClick(View v) {

    else if (v == mScreenRotate) {              
                    //mScreenRotate.setBackgroundResource(R.drawable.ic_sysbar_highlight); 
                    onClickScreenRotateButton();
    //cao start
                }

    public void onClickScreenRotateButton() {
    Slog.d(TAG, "onClickScreenRotateButton-------------");
    try {
          IWindowManager wm = IWindowManager.Stub.asInterface(
                            ServiceManager.getService(Context.WINDOW_SERVICE));           
                  if (!AUTO_ROTATE) {
    ((ImageView)mScreenRotate).setImageResource(R.drawable.ic_sysbar_rotate);
                        wm.thawRotation();
                    } else {
                        ((ImageView)mScreenRotate).setImageResource(R.drawable.ic_sysbar_rotate_lock);
                       //wm.freezeRotation(Surface.ROTATION_0);//锁定为0方向
                       wm.freezeRotation(wm.getRotation());//锁定为当前方向
                    }
                } catch (RemoteException exc) {
                    Log.w(TAG, "Unable to save auto-rotate setting");}
        }




    展开全文
  • iphone 5.1.1 状态栏

    2013-02-13 13:47:32
    5.1.1系统状态栏 包括 心型信号图标、彩色铅笔无线信号、3G网络信号、小希横屏锁定、彩色数字电量百分比、花朵电池、粉色屏幕锁头 安装位置//System/Library/Frameworks/UIKit.framework
  • Qt菜单栏、工具栏、状态栏介绍及工具栏action的动态增删显示实现方式 版本说明 版本 作者 日期 备注 0.1 loon 2018.11.12 初稿 目录 文章目录Qt菜单栏、工具栏、状态栏介绍及工具...

    Qt菜单栏、工具栏、状态栏介绍及工具栏action的动态增删显示实现方式


    版本说明

    版本作者日期备注
    0.1loon2018.11.12初稿

    目录

    一、需求和目的

    基本上所有的编辑器都支持工具栏快捷功能的动态增删,即我们在菜单栏上打钩就可以在工具栏上看到相应功能的快捷按钮,取消打钩则在工具栏上就移除了该功能的快捷按钮,那么Qt如何实现这个功能呐,我们本次总结的目的就是记录我解决这个问题的思路和方法。

    二、菜单栏、工具栏、状态栏

    对于这三个概念先做一个简单的了解,我们直接上一个source insight的图,来说一下什么是菜单栏、工具栏和状态栏:

    在这里插入图片描述

    最上面的可以下拉的菜单栏,然后是快捷点击的工具栏,最下面的是显示某些状态信息的状态栏。菜单栏的功能一般来说就是最全的,工具栏的内容可以在菜单栏中进行设置以在有限的位置显示出我们需要的常用的一些功能的快捷点击按钮(此外,还有快捷键,这里就不展开了)。

    三、Qt菜单栏、工具栏和状态栏的基本操作说明

    打开Qt助手,分别搜索menuBar、toolBar、statusBar,找到对应的QMenuBar、QToolBar、QStatusBar的类说明进行了解。基础的应用了解一下其方法和属性(公有的、私有的、受保护的都了解一下)、槽、信号等,再了解一些如何使用的 详细描述以及一些注意事项就可以很快上手了。

    在这里插入图片描述

    1、QMenuBar:

    见名知意一下,使用的时候再具体去看一下,基本没什么问题,下面的是公有方法,还有一些其他的内容在助手上都很详细,根据需要去了解一下即可。

    函数说明
    QMenuBar(QWidget *parent = Q_NULLPTR)
    ~QMenuBar()
    QAction *actionAt(const QPoint &pt) const
    QRect actionGeometry(QAction *act) const
    QAction *activeAction() const
    QAction *addAction(const QString &text)
    QAction *addAction(const QString &text, const QObject *receiver, const char *member)
    QAction *addMenu(QMenu *menu)
    QMenu *addMenu(const QString &title)
    QMenu *addMenu(const QIcon &icon, const QString &title)
    QAction *addSeparator()
    void clear()
    QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
    QAction *defaultAction() const
    QAction *insertMenu(QAction *before, QMenu *menu)
    QAction *insertSeparator(QAction *before)
    bool isDefaultUp() const
    bool isNativeMenuBar() const
    void setActiveAction(QAction *act)
    void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
    void setDefaultAction(QAction *act)
    void setDefaultUp(bool )
    void setNativeMenuBar(bool nativeMenuBar)
    NSMenu *toNSMenu()

    详细描述:

    QMenuBar类提供了一个水平菜单栏。

    菜单栏由下拉菜单项列表组成。使用addMenu()添加菜单项。例如,假设menubar是一个指向QMenuBar的指针,fileMenu是一个指向QMenu的指针,那么下面的语句将菜单插入到菜单栏中:

    menuBar->addMenu(fileMenu);
    

    菜单项文本中的&号设置Alt+F作为此菜单的快捷方式。(你可以使用“&&”在菜单栏中得到一个真正的&符号。)

    没有必要设置菜单栏。它自动将自己的几何图形设置到父小部件的顶部,并在父小部件调整大小时适当地修改它。

    使用

    在大多数主窗口样式应用程序中,您将使用QMainWindow中提供的menuBar()函数,将qmenu添加到菜单栏中,并将QActions添加到弹出菜单中。

    示例(来自菜单示例):

    fileMenu = menuBar()->addMenu(tr(“文件”));
    fileMenu->addAction(newAct);
    

    可以使用removeAction()方法删除菜单项。

    可以使用QWidgetAction类的实例将小部件添加到菜单中。然后,可以按照通常的方式将这些操作插入到菜单中;有关详细信息,请参阅QMenu文档。

    平台依赖的外观和感觉

    不同的平台对菜单栏的外观和用户交互时的行为有不同的要求。例如,Windows系统经常被配置为只在按下Alt键时才显示菜单栏中显示键盘快捷键的下划线字符助记符。

    其它还有一些在MAC和Win CE上使用的一些说明,这里就不多说了。

    2、QToolBar

    详细描述:

    QToolBar类提供一个包含一组控件的可移动面板。

    使用addAction()或insertAction()通过添加操作添加工具栏按钮。可以使用addSeparator()或insertSeparator()分隔按钮组。如果工具栏按钮不合适,可以使用addWidget()或insertWidget()插入小部件。合适的小部件的例子有QSpinBox、QDoubleSpinBox和QComboBox。当按下工具栏按钮时,它会发出actiontrigger()信号。

    工具栏可以固定在特定区域(例如窗口顶部),也可以在工具栏区域之间移动;请参阅setMovable()、isMovable()、allowedAreas()和isAreaAllowed()。

    当工具栏的大小调整到太小而不能显示它所包含的所有项目时,扩展按钮将作为工具栏中的最后一个项目出现。按下扩展按钮将弹出一个菜单,其中包含当前不在工具栏中的项目。

    如果QToolBar不是QMainWindow的子窗口,它就失去了使用addWidget()在工具栏中添加小部件填充扩展弹出框的能力。请使用继承QWidgetAction并实现QWidgetAction::createWidget()创建的小部件操作。

    请参阅QToolButton、QMenu、QAction和应用程序示例。

    可以看到工具栏还可以插入QSpinBox、QDoubleSpinBox和QComboBox小部件呐,感兴趣的可以试试,此外,点击工具栏按钮时发出的是actiontrigger信号。

    3、QStatusBar

    QStatusBar类提供了一个适合显示状态信息的水平条。

    每个状态指示器分为以下三类:

    • Temporary(暂时的)-暂时占据状态栏的大部分。例如,用于解释工具提示文本或菜单项。
    • Normal(一般的) -占据状态栏的一部分,可能被临时消息隐藏。例如,用于在字处理器中显示页和行号。
    • Permanent(永久的)-永远不会隐藏。例如,一些应用程序将大写锁定指示器放在状态栏中,用于重要的模式指示。

    QStatusBar可以显示所有三种类型的指示器。

    通常,状态栏功能的请求与QMainWindow对象相关。QMainWindow提供了一个主应用程序窗口,其中包含一个菜单栏、工具栏、停靠小部件和一个围绕大型中央小部件的状态栏。可以使用QMainWindow::statusBar()函数检索状态栏,并使用QMainWindow::setStatusBar()函数替换状态栏。

    使用showMessage()显示临时消息:

    void MainWindow::createStatusBar()
    {
    	statusBar()->showMessage(tr(“准备好”));
    }
    

    要删除临时消息,请使用clearMessage()槽函数,或在调用showMessage()时设置时间限制。例如:

    void MainWindow::print ()
    {
    #ifndef QT_NO_PRINTDIALOG
    	QTextDocument *document = textEdit->document();
    	QPrinter printer;
    
    	QPrintDialog dlg(&printer, this);
    	if (dlg.exec() != QDialog::Accepted){
    		return;
    	}
    
    	document->print(&printer);
    	statusBar()->showMessage(tr(“Reday”),2000);
    # endif
    }
    

    使用currentMessage()函数来检索当前显示的临时消息。QStatusBar类还提供了messageChanged()信号,当临时状态消息发生更改时发出该信号。

    通过创建一个小部件(QLabel、QProgressBar甚至QToolButton),然后使用addWidget()或addPermanentWidget()函数将其添加到状态栏中,可以显示普通消息和永久消息。使用removeWidget()函数从状态栏删除此类消息。

    statusBar()->addWidget(new MyReadWriteIndication);
    

    默认情况下,QStatusBar在右下角提供一个QSizeGrip。您可以使用setSizeGripEnabled()函数禁用它。使用isSizeGripEnabled()函数确定大小手柄的当前状态。

    参见QMainWindow, QStatusTipEvent, GUI设计手册:状态栏和应用实例。

    由此可以看出状态栏一般都分成三份呐(暂时、一般、永久)。此外,还可以插入小部件别忘记用。

    四、工具栏功能在菜单栏进行动态配置的实现思路

    1、思路

    根据上面的描述,我们可以看到一般就是用addaction和insertaction添加action的,一般我们用Qt设计师设计完后action都已经有了,所以addaction不是很好用了,我这里是用insertaction,但是insert要指定放在哪个action前面,这就麻烦了,我们动态添加的时候不知道前一个action是什么,所以这里就用到了一个小技巧: 在最后设置占位action(占位的action名字设置为|即可),那么我们insertaction时就插入到对应的占位action前面就可以了,即设置空白的action进行占位。 移除就不用多说了,直接removeaction。

    使action可选的方式就是设置action为checked即可选的,然后就可以设置enabled来(true、false)显示√了。

    定义工具栏的显示与否这里就不说了,很简单,使用其自带的槽函数结合一个action按钮就可以了。

    2、结果展示

    这里主要演示工具栏的action动态增删,至于状态栏菜单栏的扩展这里就不演示了(图片大小不能超过5M哈)。

    在这里插入图片描述

    五、最后

    学习如何使用Qt创建菜单栏、工具栏和状态栏很简单,按部就班即可,但是如何灵活的运用这些知识来解决实际问题往往需要一些技巧,这些技巧往往就是我们要总结和回顾的经验。

    展开全文
  • Android透明式状态栏、导航栏实现

    千次阅读 2016-08-24 17:01:11
    有很多应用有透明式状态栏、导航栏,表现形式是在不同页面里,状态栏可以与最上面的背景图片或者颜色保持一致。典型的案例就是手Q。

    有很多应用有透明式状态栏、导航栏,表现形式是在不同页面里,状态栏可以与最上面的背景图片或者颜色保持一致。典型的案例就是手Q:(如图所示)

    这里写图片描述

    很明显,在手Q中主要的几个页面的标题栏(ActionBar位置),都是湖蓝色,而状态栏也是湖蓝色。QQ空间和好友资料的最上面的控件的自定义皮肤而状态栏是以透明背景叠加在其上。(眼尖的博友已经发现了图片都是iPhone的,Android手Q界面差不多的,自行脑补!!!)

    一、显示效果
    二话不说,先看一下透明状态栏、导航栏的效果:(触摸向上滑动,显示出透明的状态栏导航栏,一段时间后透明的状态栏导航栏自动隐藏)
    这里写图片描述

    二、实现功能
    1.步骤:
    1) 创建一个工程,主布局就先做一个ImageView,自己找个好看的图片做src。
    2) 在Activity重写的onCreate方法中获得窗口视图对象(DecorView)
    3) 设置DecorView的SystemUiVisibility
    4) 设置导航条、状态栏的颜色–>透明
    5) 获取当前Activity的ActionBar并隐藏

    2.具体代码和注释:
    获取DecorView对象

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        View decorView = getWindow().getDecorView();
        ...
    }

    设置SystemUiVisibility

    int option = View.SYSTEM_UI_FLAG_FULLSCREEN // 全屏标记
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // 布局全屏标记,避免退出全屏模式时内容被覆盖
        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // 隐藏导航栏标记
        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // 布局隐藏导航栏标记,同理
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY // 粘性沉浸体验
        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; // 确保上述标记稳定
    // 此方法用来设置系统UI的可见性,系统UI包括状态栏、ActionBar、导航栏
    devorView.setSystemUiVisibility(option);

    设置状态栏、导航栏的颜色:

    getWindow().setStatusBarColor(Color.TRANSPARENT);// Color.TRANSPARENT = 0 表示#00000000即透明颜色
    getWindow().setNavigationBarColor(Color.TRANSPARENT);

    获取本页面的ActionBar并隐藏起来

    ActionBar actionBar = getSupportActionBar(); // 注意:此处用的Activity继承的是AppCompatActivity(它继承的是FragmentActivity)
    // 所以调用的是getSupport...方法,如果继承Activity则直接调用get...方法
    assert actionBar != null; // 这一句可以不理会,反正我是Ctrl + F1提示出来的,意思其实是判断如果actionBar不为空则向下执行。
    actionBar.hide();

    注意:最后一点注意事项是:只支持Android API 21以上的手机

    三、来点花式透明的效果:
    这里写图片描述
    这个花式效果其实还是很实用的。因为通常要隐藏状态栏和导航栏的情况是看视频或者打游戏。一般都是横屏,因此做一个横屏的效果。关于横竖屏切换以及屏幕方向锁定可以参看我的下一篇博客。

    展开全文
  • Monkey测试时禁止下拉状态栏

    千次阅读 2019-03-14 12:05:56
    会下拉状态栏,关闭WiFi,打开GPS,打开蓝牙,打开飞行模式等一系列操作,严重干扰程序的测试,尤其是对网络状态下的耗电量测试。 下面的命令可以禁止 Monkey测试下,手机操作状态栏。 adb shell settings put ...

    Monkey 测试,随机点击。会下拉状态栏,关闭WiFi,打开GPS,打开蓝牙,打开飞行模式等一系列操作,严重干扰程序的测试,尤其是对网络状态下的耗电量测试。

    下面的命令可以禁止 Monkey测试下,手机操作状态栏。

    adb shell settings put global policy_control immersive.full=* 关闭手机的状态栏
    adb shell settings put global policy_control null 开启手机状态栏
    

    然而 WiFi还是会被关闭,下拉滑动比较大时,还是会滑出状态栏。
    解决办法是,monkey测试时,用命令控制,Monkey测试的比例,将 touch 比例设置为100%,就会自动禁止掉滑动操作,就不会拉出操作栏,关闭WiFi,修改系统设置了。

    展开全文
  • IE7隐藏状态栏技巧

    千次阅读 2008-05-16 11:11:00
    在IE7中,直接利用windows.open()函数来控制是否显示状态栏,不会成功的!今早研究了一番,发现只要... 3、去掉“状态栏”的勾 4、再次进入“工具栏”,去掉“锁定工具栏”; 5、再次进入“工具栏”,勾上“锁定工具
  • Android使用WindowManager覆盖状态栏

    千次阅读 2019-01-15 23:14:45
    由于业务需要,现在需要用一个自定义的View来弹出覆盖住状态栏,并且设置一定时间后可以自动消失,同时在这个View中,也可以使用按钮来关闭View,使它消失。 现在从WindowManager开始入手,先是得到WindowManager...
  • window manager类也是各种ask想直接实现沉浸式状态栏的必掉的一个类,进过各种公用的初始化,走到createAndAddWindows()方法,点过去,我们发现他是一个抽象方法,那么这个方法就是有子类来实现的,查看集成体系,...
  • Windows下去掉快捷方式的箭头并不锁定任务的简单操作
  • 本文包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法,分享给大家供大家参考,具体内容如下 方法一 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
  • MFC工具条和状态栏

    千次阅读 2011-11-10 14:36:09
    【转载】 源地址 ... ...MFC工具条和状态栏 ...Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏(StatusBar)、工具条提示窗口(ToolTip)。 Windows在一个
  • 温故 ...可以看到,保留了底部导航栏,但问题来了,上下控件占用了状态栏和导航栏的空间,这个时候, android:fitsSystemWindows="true" 的作用该体现了!在布局文件根元素添加该属性后,效果图如下
  • // 竖屏锁定 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //初始化视图 setContentView(setLayoutId()); //设置沉浸式 setStatusBar(); //初始化View initView(); //初始化数据 ...
  • 导航栏与状态栏 最上面是状态栏 StatusBar 最下面是导航栏 NavagationBar 有的客户需要隐层导航栏 一、隐藏导航栏 目录:frameworks/base/packages/SystemUI/src/...
  • Code::Blocks Toolbars (工具栏) - Logs (日志栏) - Status bar (状态栏) - Manager (管理栏) 界面设置 1. View -> Toolbars 2. View -> Logs 3. View -> Status bar 4. View -> Manager
  • 1、状态栏反色 a.在info中添加 View controller-based status bar appearance,并将值设置 NO,表明不由系统控制,由vc自己控制; b.在viewWillApear中使用以下代码实现反色 UIApplication.shared....
  • 系统城的小编这里要为大家带来的是关于Win7任务怎么调整位置的方法,大家通常windows操作系统的任务都是位于桌面屏幕底部的位置,你平常习惯把任务放到哪里呢?是否也厌烦了千篇一律的任务置于底部的做法呢...
  • 第十三讲 MFC工具条和状态栏

    千次阅读 2014-03-26 23:18:58
    第十三讲 MFC工具条和状态栏 Windows控制窗口 Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏(StatusBar)、工具条提示窗口(ToolTip)。 Windows在一个DLL...
  • 为了用户界面简洁易用,需要禁用系统状态栏的下拉通知菜单。 修改如下: 文件为NotificationPanelView.java, 这个类包含了一个变量mBlockTouches public class NotificationPanelView extends PanelView ...
  • Ubuntu17.04桌面状态栏设置

    千次阅读 2017-10-10 22:09:47
    ubuntu从16.04版本以后提供命令行的方式,可以将任务,随意调动到左侧或者底部(并不支持右侧)。 命令:gsettings set com.canonical.Unity.Launcher launcher-position Bottom(调整到底部) ...
  • 问题描述: 如下图电源图标都要占据半个...在任务的空白处右键,将“锁定任务”前面的勾去掉,这个时候图标长度就可以编辑了: 左右拉动就可以调整长度了,调整完之后再将“锁定任务”前面勾打上就OK了
  • 这里是教大家如何设置居中,并非任务透明,所以不要觉得不一样 1.鼠标在任务右键 工具》》》新建工具 2.选择一个空文件夹(里面不放任何东西,如果没有...5.然后右键再点击锁定任务就大功告成 注意:后面如
  • MFC教程-MFC工具条和状态栏

    千次阅读 2013-11-03 13:53:39
    Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏(StatusBar)、工具条提示窗口(ToolTip)。 Windows在一个DLL加载时注册个控制窗口的“窗口类”。例如,工具条的“窗口类...
  • 1、去掉底部状态栏 vi frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java 屏蔽代码mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams())...
  • VB6.0关于状态栏的使用

    千次阅读 2018-10-18 15:52:47
    打开vb6.0选择工程——部件——Microsoft ...用 途:StatusBar控件提供了一个窗体,该窗体通常位于父窗体的底部,通过这一窗体,应用程序能显示各种状态数据。 StatusBar的窗格(panels)对象: StatusBar是由Pan...
  • Microsoft Excel底部的状态栏

    千次阅读 2015-03-23 11:55:08
    1)单元格模式(最左边两个字) ①就绪:一种常规状态。 ②输入:内容输入模式。选择一个单元格并开始键入或者按两次F2时,将显示该模式。 ③编辑:单元格内编辑模式。双击某个单元格或者按F2时,将显示该模式。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,121
精华内容 13,648
关键字:

怎么锁定状态栏