• 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:


     

    代码:

     1 package com.my;
     2 import android.app.Activity;
     3 import android.os.Bundle;
     4 import android.os.Handler;
     5 import android.os.Message;
     6 import android.view.Window;
     7 import android.view.WindowManager;
     8 public class WindowFeatureDemoActivity extends Activity {
     9     @Override
    10     public void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         // requestWindowFeature();的取值
    13         // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定
    14         // 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定
    15         // 3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
    16         // 4.FEATURE_INDETERMINATE_PROGRESS:不确定的进度
    17         // 5.FEATURE_LEFT_ICON:标题栏左侧的图标
    18         // 6.FEATURE_NO_TITLE:无标题
    19         // 7.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。
    20         // 8.FEATURE_PROGRESS:进度指示器功能
    21         // 9.FEATURE_RIGHT_ICON:标题栏右侧的图标
    22         // ========================FEATURE_INDETERMINATE_PROGRESS:不确定的进度
    23 //        showFEATURE_INDETERMINATE_PROGRESS();
    24 //        // =====================FEATURE_CUSTOM_TITLE       
    25 //        showFEATURE_CUSTOM_TITLE();
    26 //        // ======================== FEATURE_LEFT_ICON:标题栏左侧的图标
    27 //        showFEATURE_LEFT_ICON();
    28 //        // ======================FEATURE_NO_TITLE
    29 //        showFEATURE_NO_TITLE();   
    30 //         =================================FEATURE_PROGRESS
    31         showFEATURE_PROGRESS();
    32     }
    33     private void showFEATURE_INDETERMINATE_PROGRESS() {
    34         requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    35         setContentView(R.layout.main);
    36         getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS, R.layout.progress);
    37         // 必须得加上否则显示不出效果 可以通过这个在以后设置显示或隐藏
    38         setProgressBarIndeterminateVisibility(true);
    39     }
    40     private void showFEATURE_CUSTOM_TITLE() {
    41         // 自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
    42         requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    43         setContentView(R.layout.main);
    44         getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.customtitle);
    45     }
    46     private void showFEATURE_LEFT_ICON()
    47     {
    48          requestWindowFeature(Window.FEATURE_LEFT_ICON);
    49          setContentView(R.layout.main);
    50          getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,
    51          R.drawable.icon);
    52     }
    53     private void showFEATURE_NO_TITLE()
    54     {
    55          requestWindowFeature(Window.FEATURE_NO_TITLE);
    56          setContentView(R.layout.main);
    57          // 加上这句设置为全屏 不加则只隐藏title
    58          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    59          WindowManager.LayoutParams.FLAG_FULLSCREEN);
    60     }
    61     private void showFEATURE_PROGRESS()
    62     {
    63         requestWindowFeature(Window.FEATURE_PROGRESS);
    64         setProgressBarVisibility(true);
    65         setContentView(R.layout.main);
    66         setTitle("");
    67         getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
    68         // 通过线程来改变ProgressBar的值
    69         new Thread(new Runnable() {
    70             public void run() {
    71                 for (int i = 0; i < 10; i++) {
    72                     try {
    73                         Thread.sleep(1000);
    74                         Message m = new Message();
    75                         m.what = (i + 1) * 20;
    76                         WindowFeatureDemoActivity.this.myMessageHandler.sendMessage(m);
    77                     } catch (Exception e) {
    78                         e.printStackTrace();
    79                     }
    80                 }
    81             }
    82         }).start();
    83     }
    84     Handler myMessageHandler = new Handler() {
    85         // @Override
    86         public void handleMessage(Message msg) {
    87             // 设置标题栏中前景的一个进度条进度值
    88             setProgress(100 * msg.what);
    89             // 设置标题栏中后面的一个进度条进度值
    90             setSecondaryProgress(100 * msg.what + 10);
    91             super.handleMessage(msg);
    92         }
    93     };
    94 }
  • 相关阅读:
    [ios] 分辨率
    [bat] 图片裁剪工具ImageMagick
    [ASP.NET] 调用32位ORACLE错误
    [Linux] 开启ESX的SSH
    [Linux] 关机和重启命令
    [.net] 关于CS0016: Could not write to output file ‘c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files… ‘Access is denied.’ 的解决办法
    [linux] XEN里面的虚拟机centos无法使用date s设置时间
    字符串替换,string的强大
    C语言学习笔记(1)
    C语言学习笔记(8)
  • 原文地址:https://www.cnblogs.com/Sharley/p/5563736.html
Copyright © 2020-2023  润新知