`
zhanhao
  • 浏览: 286947 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

  • 大小: 41.4 KB
  • 大小: 18 KB
  • 大小: 24 KB
  • 大小: 6.6 KB
  • 大小: 23.9 KB
  • 大小: 14.6 KB
  • 大小: 24 KB
10
0
分享到:
评论
2 楼 urok22 2013-10-30  
很不错,学习了
1 楼 liaohq_45289 2012-08-21  
学习了,谢谢。正纠结着呢。

相关推荐

    Android 中 requestWindowFeature()的应用

    下面我们将深入探讨`requestWindowFeature()`的使用以及相关的枚举常量。 首先,`requestWindowFeature()`的语法如下: ```java requestWindowFeature(int featureId); ``` 这里的`featureId`参数是一个表示所需...

    Android的Window类详解

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

    Android TabHost组件使用方法详解

    requestWindowFeature(Window.FEATURE_NO_TITLE); // 去掉标题栏 setContentView(R.layout.main); TabHost tabHost = getTabHost(); // 获取TabHost实例 tabHost.setOnTabChangedListener(this); // 设置标签页...

    蓝牙开发详解

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

    android WebView控件的使用

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

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

    然而,使用这种方法时,可能会遇到一个问题:在应用启动时,标题栏会短暂地显示一下,然后在`requestWindowFeature()`执行后才消失。这是由于Activity的加载过程导致的,标题栏先被绘制出来,然后才执行到隐藏代码。...

    Android通过自定义Activity实现悬浮的Dialog详解

    "Android自定义Activity实现悬浮Dialog详解" Android操作系统中,Dialog是非常常见的一种交互方式,但是在某些情况下,我们需要实现悬浮的Dialog,即Dialog可以悬浮在Activity的上层,而不是弹出式的Dialog。这篇...

    初学Android

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

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

    1. 使用`requestWindowFeature(Window.FEATURE_NO_TITLE)`隐藏Activity的标题栏。这必须在`setContentView()`之前调用,因为一旦设置了布局,标题栏特征就无法更改。 2. 使用`getWindow().setFlags(WindowManager....

    android笔记

    requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏 ``` 而在启动另一个...

    超有用的安卓学习材料3

    【Intent-filter属性详解】 Intent-filter是AndroidManifest.xml中定义Activity、BroadcastReceiver和服务接收Intent的关键部分。主要属性包括: - `action`:定义Intent的行动,如ACTION_VIEW、ACTION_SEND等。 - `...

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

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

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

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

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

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

    进度条ProgressBar及ProgressDialog(实例)

    ProgressBar及ProgressDialog实例详解 ProgressBar是Android系统中的一种常用组件,用于向用户展示某个耗时操作的进度,以提高用户界面的友好性。在本文中,我们将详细介绍ProgressBar的基本概念、种类、关键属性和...

    cocos2d引擎使用说明

    requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setFlags(WindowManager....

    3d图形开发的代码

    - **请求无标题窗口**:通过 `requestWindowFeature` 方法去除窗口标题栏。 - **初始化OpenGL视图**:创建 `OpenGLView` 实例,并将其设置为当前活动的主视图。 #### 3.2 OpenGLRenderer 类详解 `OpenGLRenderer` ...

Global site tag (gtag.js) - Google Analytics