文档章节

requestWindowFeature的用法

今日竹石
 今日竹石
发布于 2013/12/16 11:01
字数 476
阅读 42
收藏 0

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

package com.example.reqestfutertest;


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 MainActivity extends Activity {


@Override

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属性,然后再加载布局,否则就会报运行时错误。

 

© 著作权归作者所有

今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
私信 提问
android activity设置无标题实现全屏

Activity设置全屏和无标题栏,要用到andorid.view.Window和Android.view.WindowManager。 Window.FEATURENOTITLE表示无标题栏。 WindowManager.LayoutParams.FLAGFULLSCREEN表示全屏。 具体用......

八阿哥
2016/01/14
31
0
最炫Material Design风过渡动画

在Activity的跳转过程中,需要用动画,普遍都是用overridePendingTransition。而Android有Material Design风格的动画,效果更生动,毕竟最炫MD风。通过Activity的过度动画ActivityOptions,以...

翻滚吧李博
2017/12/07
0
0
requestWindowFeature()的应用

android开发中经常会在setContentView(R.layout.XXX); 前设置requestWindowFeature(XXXX)。 他的意思是需要软件全屏显示、自定义标题(使用按钮等控件)和其他的需求 首先介绍一个重要方法那...

sxl01890
2015/09/12
34
0
android运行出错

super.onCreate(savedInstanceState); //requestWindowFeature(Window.FEATURE_PROGRESS); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.activit......

zh_lh
2015/04/19
95
1
Android之定义各种样式的标题栏

最近在网上看到一篇介绍Android window的requestWindowFeature()的使用方法,共享出来大家学习学习 requestWindowFeature(Window.FEATURE_LEFT_ICON); setContentView(R.layout.dialog_activ......

晨曦之光
2012/03/05
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

Chrome OS 更新新版本可让Linux访问USB连接的Android设备

谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75。本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Linux进行调试等等。...

linuxCool
昨天
9
0
聊聊feign的HystrixInvocationHandler

序 本文主要研究一下feign的HystrixInvocationHandler HystrixInvocationHandler feign-hystrix-10.2.3-sources.jar!/feign/hystrix/HystrixInvocationHandler.java final class HystrixInvo......

go4it
昨天
12
0
WPS 开启宏功能

前言 最近安装了个人版的WPS2019,使用Excel的宏功能时候发现不能使用了,网上下载了几个安装包都是比较旧的,不能使用。 找了个VB7.1的安装包,安装完了,重启WPS宏功能就可以使用了。 安装...

sharelocked
昨天
2
0
ZStack实践汇 | 高效开发测试打造产品化私有云

作者:许佳珺 前言 随着越来越多的企业将云计算产品应用到基础设施及其核心业务中,如何提高和保证软件交付质量、减少软件开发迭代周期、加速软件发布频率成为所有云厂商面临的关键问题。 根...

ZStack社区版
昨天
3
0
IPv4如何转换为IPv6?

导读 ipv6已经逐渐在应用,现在已经有很多的运营商支持ipv6,前天我们也发布了如何让电脑使用ipv6地址?有很多朋友在问?ipv6有什么作用,它的表示方式是什么,今天我们来一起来详细了解下ipv...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部