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);
            }
        };

    }

  • 相关阅读:
    字符串匹配算法
    C#中窗体的位置和大小
    关于C#值类型,引用类型,值传递,引用传递(转载)
    ArcMap中设置.mxd相对路径
    统计学上的知识
    .NET 数学实现资料(ZZ)
    牛腩新闻系统学习笔记06讲 编写SQLHelper
    DropDownList 控件不能触发SelectedIndexChanged 事件的另一个原因
    牛腩新闻视频 03讲 数据库设计的心得 如何建立外键sql2008的数据库关系图功能
    使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916
  • 原文地址:https://www.cnblogs.com/lsck/p/2598679.html
Copyright © 2011-2022 走看看