zoukankan      html  css  js  c++  java
  • 【转载】requestWindowFeature使用详解

    requestWindowFeature可以设置的值有:
     // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定
            // 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定
            // 3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
            // 4.FEATURE_INDETERMINATE_PROGRESS:不确定的进度
            // 5.FEATURE_LEFT_ICON:标题栏左侧的图标
            // 6.FEATURE_NO_TITLE:无标题
            // 7.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。
            // 8.FEATURE_PROGRESS:进度指示器功能
            // 9.FEATURE_RIGHT_ICON:标题栏右侧的图标

    效果图:
     default:

     
     progress:


    no title:



     
     lefticon:



     fullscreen:

     indeterminate_progress:

     

    customtitle:



     

    代码:

    package com.my;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.Window;
    import android.view.WindowManager;
    public class WindowFeatureDemoActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // requestWindowFeature();的取值
            // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定
            // 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定
            // 3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
            // 4.FEATURE_INDETERMINATE_PROGRESS:不确定的进度
            // 5.FEATURE_LEFT_ICON:标题栏左侧的图标
            // 6.FEATURE_NO_TITLE:无标题
            // 7.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。
            // 8.FEATURE_PROGRESS:进度指示器功能
            // 9.FEATURE_RIGHT_ICON:标题栏右侧的图标
            // ========================FEATURE_INDETERMINATE_PROGRESS:不确定的进度
    //        showFEATURE_INDETERMINATE_PROGRESS();
    //        // =====================FEATURE_CUSTOM_TITLE       
    //        showFEATURE_CUSTOM_TITLE();
    //        // ======================== FEATURE_LEFT_ICON:标题栏左侧的图标
    //        showFEATURE_LEFT_ICON();
    //        // ======================FEATURE_NO_TITLE
    //        showFEATURE_NO_TITLE();   
    //         =================================FEATURE_PROGRESS
            showFEATURE_PROGRESS();
        }
        private void showFEATURE_INDETERMINATE_PROGRESS() {
            requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
            setContentView(R.layout.main);
            getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS, R.layout.progress);
            // 必须得加上否则显示不出效果 可以通过这个在以后设置显示或隐藏
            setProgressBarIndeterminateVisibility(true);
        }
        private void showFEATURE_CUSTOM_TITLE() {
            // 自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
            requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
            setContentView(R.layout.main);
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.customtitle);
        }
        private void showFEATURE_LEFT_ICON()
        {
             requestWindowFeature(Window.FEATURE_LEFT_ICON);
             setContentView(R.layout.main);
             getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,
             R.drawable.icon);
        }
        private void showFEATURE_NO_TITLE()
        {
             requestWindowFeature(Window.FEATURE_NO_TITLE);
             setContentView(R.layout.main);
             // 加上这句设置为全屏 不加则只隐藏title
             getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
             WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        private void showFEATURE_PROGRESS()
        {
            requestWindowFeature(Window.FEATURE_PROGRESS);
            setProgressBarVisibility(true);
            setContentView(R.layout.main);
            setTitle("");
            getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
            // 通过线程来改变ProgressBar的值
            new Thread(new Runnable() {
                public void run() {
                    for (int i = 0; i < 10; i++) {
                        try {
                            Thread.sleep(1000);
                            Message m = new Message();
                            m.what = (i + 1) * 20;
                            WindowFeatureDemoActivity.this.myMessageHandler.sendMessage(m);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }).start();
        }
        Handler myMessageHandler = new Handler() {
            // @Override
            public void handleMessage(Message msg) {
                // 设置标题栏中前景的一个进度条进度值
                setProgress(100 * msg.what);
                // 设置标题栏中后面的一个进度条进度值
                setSecondaryProgress(100 * msg.what + 10);
                super.handleMessage(msg);
            }
        };
    }
  • 相关阅读:
    Linux下使用ps命令来查看Oracle相关的进程
    虚继承、虚基类
    C++/C小知识点(2)
    C++中的运行中动态类型识别RTTI
    什么应该放在头文件?何为外连接?
    Placement new、operator new、new operator 完全释疑
    二叉搜索树
    Linux C编程学习资料,学习过程
    独立对象(非附属对象)大小
    编程珠玑第一章、第二章
  • 原文地址:https://www.cnblogs.com/spmoon/p/3442741.html
Copyright © 2011-2022 走看看