requestWindowFeature的用法

     requestWindowFeature该如何使用呢?根据android developers中的介绍和如下程序进行学习。具体代码以下: android

package com.example.reqestfutertest; app


import android.app.Activity; ide

import android.os.Bundle; 布局

import android.os.Handler; 学习

import android.os.Message; this

import android.view.Window; spa

import android.view.WindowManager; 线程


public class MainActivity extends Activity { get


@Override it

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

        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.activity_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.activity_main);

        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,

                R.layout.customtitle);

    }


    private void showFEATURE_LEFT_ICON() {

        requestWindowFeature(Window.FEATURE_LEFT_ICON);

        setContentView(R.layout.activity_main);

        getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,

                R.drawable.ic_launcher);

    }


    private void showFEATURE_NO_TITLE() {

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.activity_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.activity_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;

                        MainActivity.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);

        }

    };

}

     这里应该注意的问题是,必定要先写 requestWindowFeature属性,而后再加载布局,不然就会报运行时错误。
相关文章
相关标签/搜索