`
wb1991wb
  • 浏览: 157224 次
  • 来自: 上海
社区版块
存档分类
最新评论

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

}

分享到:
评论

相关推荐

    Android 中 requestWindowFeature()的应用

    在Android应用开发中,`requestWindowFeature()`是一个关键的方法,用于开启或关闭窗口的各种特性,以便根据需求定制应用程序的界面表现。这个方法主要用于Activity的窗口管理,它允许开发者在Activity启动之前设定...

    Android的Window类详解

    ### Android的Window类详解 #### 一、概述 在Android开发过程中,`Window`类扮演着极其重要的角色,它是应用程序与用户交互的主要界面之一。本文将深入探讨Android系统的`Window`类,包括其属性和成员函数等内容。...

    Android TabHost组件使用方法详解

    需要注意的是,随着Android设计指南的更新,现在的App更多的是使用Fragment和ViewPager来实现类似的功能,因为它们提供了更好的可定制性和适应性。不过,了解TabHost仍然是理解Android UI体系的重要部分。

    android WebView控件的使用

    ### Android WebView 控件的使用详解 #### 一、引言 WebView是Android系统中的一个重要组件,主要用于在应用程序中展示Web页面。它可以帮助开发者快速地集成Web内容到原生应用中,实现网页浏览功能,这对于开发...

    Android模拟器全屏问题

    ### Android模拟器全屏问题详解 #### 一、引言 在开发Android应用的过程中,确保应用能在各种设备上正常显示是非常重要的。这其中涉及到的一个常见问题是让应用能够在Android模拟器上实现全屏显示。本文将详细介绍...

    Android 欢迎全屏图片详解及实例代码

    通过调用`getWindow().setFlags()`来设置全屏模式,同时使用`requestWindowFeature(Window.FEATURE_NO_TITLE)`去除标题栏。以下是示例代码: ```java @Override protected void onCreate(Bundle ...

    Android_ListView动态刷新

    ### Android ListView 动态刷新详解 在Android应用开发中,`ListView`是显示大量数据集的常用组件之一,尤其在需要展示列表项时非常实用。然而,在数据集更新时,如何实现实时或动态地刷新`ListView`,是开发者经常...

    整理出来的一些Android基础知识

    - 使用`requestWindowFeature(Window.FEATURE_NO_TITLE);`来移除Activity标题栏。 2. **设置全屏模式** - 可以通过设置窗口标志来实现全屏效果: ```java getWindow().setFlags(WindowManager.LayoutParams....

    蓝牙开发详解

    ### 蓝牙开发详解:基于Android平台的深入探索 #### 蓝牙技术概览与应用 蓝牙技术作为一项短距离无线通信技术,广泛应用于手机、笔记本电脑、汽车和其他电子设备之间,实现数据传输和通信。对于Android开发者而言...

    最新版Android开发教程7.2.pdf

    ### Android编程基础知识点详解 #### 一、隐藏标题栏与状态栏 在Android应用程序开发过程中,根据用户界面设计的需求,有时需要对应用的显示效果进行调整,比如隐藏标题栏或状态栏来达到全屏显示的效果。 ##### ...

    初学Android

    【初学Android】知识点详解 Android 是一个广泛使用的开源移动操作系统,主要应用于智能手机和平板电脑。郭霖的《第一行代码》是许多初学者入门Android开发的首选教材。本篇文章将详细讲解Android开发的一些基础...

    Android实现Camera功能

    requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFormat(PixelFormat.TRANSLUCENT); } @Override public void surfaceCreated(SurfaceHolder holder) { mCamera = Camera.open(); try { ...

    Android 贪吃蛇源码分析

    此外,源码中还体现了Android开发的一些基本概念,如布局资源的使用、状态保存与恢复机制等。对于初学者来说,这是一个很好的学习案例,有助于理解Android应用的基本构建方式以及如何实现简单的游戏逻辑。

    Android开发技巧

    ### Android开发技巧详解 在Android应用开发过程中,掌握一定的技巧对于提高开发效率、优化用户体验具有重要作用。本文将根据提供的文件信息中的几个关键知识点进行详细解析,包括:如何检测网络连接状态、实现全屏...

    Android隐藏标题栏及解决启动闪过标题的实例详解

    Android隐藏标题栏及解决启动闪过标题的实例详解 方法一: 在代码中设置 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 方法二: 在AndroidManifest.xml 里面设置 &lt;application android:...

    Android编程设置全屏的方法实例详解

    同时,如果需要控制屏幕方向,可以使用`android:screenOrientation`属性,如`android:screenOrientation="sensor"`允许根据设备方向自动切换。 ```xml android:name="com.ladygaga.test.ImageSwitcherTest" ...

    Android 自定义标题栏的实例详解

    activity.requestWindowFeature(Window.FEATURE_NO_TITLE); // 隐藏原生标题栏 activity.setContentView(R.layout.mytitlebar); // 设置自定义标题栏布局 TextView tvTitle = (TextView) activity.findViewById(R...

    android笔记

    例如,当使用ContentProvider时,可能会遇到`android.security.exception:openingprovider`错误,这通常是因为被访问的ContentProvider没有被正确导出。在AndroidManifest.xml中,每个服务的`android:exported`属性...

Global site tag (gtag.js) - Google Analytics