最近在网上看到一篇介绍Android window的requestWindowFeature()的使用方法,共享出来大家学习学习

requestWindowFeature(Window.FEATURE_LEFT_ICON);

setContentView(R.layout.dialog_activity);

getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert);

Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)

我们在开发程序是经常会需要软件全屏显示、自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示.

首先介绍一个重要方法那就是requestWindowFeature(featrueId),它的功能是启用窗体的扩展特性。参数是Window类中定义的常量。

一、枚举常量

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:标题栏右侧的图标

二、详解1.默认显示状态

2.FEATURE_CUSTOM_TITLE详解

this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.main);

这是因为没设置Featrue

在上面代码后加:getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);

自定义标题完成,它是一个xml文件布局

title.xml

xmlversion="1.0"encoding="utf-8"?>

<<>LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<<>ImageViewandroid:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/icon"/>

<<>TextViewandroid:id="@+id/text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:text="文本"/>

3.FEATURE_INDETERMINATE_PROGRESS详解

表示一个进程正在运行

实现代码

1.progress.xml

xmlversion="1.0"encoding="utf-8"?>

<<>LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<<>ProgressBarandroid:id="@+id/progress"

android:layout_width="wrap_content"android:layout_height="wrap_content"

android:layout_gravity="center_vertical"

style="?android:attr/progressBarStyleSmallTitle">

2.Java代码

this.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

setContentView(R.layout.main);

getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS, R.layout.progress);

setProgressBarIndeterminateVisibility(true);this.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

setContentView(R.layout.main);

getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS, R.layout.progress);

setProgressBarIndeterminateVisibility(true);

4.FEATURE_LEFT_ICON详解

左侧显示图标

实现代码

this.requestWindowFeature(Window.FEATURE_LEFT_ICON);

setContentView(R.layout.main);

getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.icon);this.requestWindowFeature(Window.FEATURE_LEFT_ICON);

setContentView(R.layout.main);

getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.icon);

5.FEATURE_NO_TITLE详解

可用于全屏显示

实现代码

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.main);

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

setContentView(R.layout.main);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

虽然上面这样可以在标题栏加入一些控件,但是仍然不能改变标题栏的高度、背景色,要想达到这个目的,只能使用theme(主题)。因此往project里先添加一个style。改变背景色修改android:windowTitleBackgroundStyle的值,改变标题栏高度则修改android:windowTitleSize的值。下面是一个示例:

xmlversion="1.0"encoding="utf-8"?>

#778899

32dp

@style/CustomWindowTitleBackground

接着再修改AndroidManifest.xml文件,找到要自定义标题栏的Activity,添加上android:theme值,比如:

android:theme值就是上面那个style.xml文件里定义的一个style的name值。按照以上的步骤,修改标题栏布局、高度、背景色的功能就实现了。xmlversion="1.0"encoding="utf-8"?>

<<>resources>

<<>stylename="CustomWindowTitleBackground">

<<>itemname="android:background">#778899

<<>stylename="activityTitlebar"parent="android:Theme">

<<>itemname="android:windowTitleSize">32dp

<<>itemname="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground

接着再修改AndroidManifest.xml文件,找到要自定义标题栏的Activity,添加上android:theme值,比如:

android:theme值就是上面那个style.xml文件里定义的一个style的name值。

按照以上的步骤,修改标题栏布局、高度、背景色的功能就实现了。

android 标题样式,Android定义各种样式的标题栏:requestWindowFeature()相关推荐

  1. android 标题图标,android 中 actionbar 常用方法。设置标题,隐藏图标等

    设置标题: actionBar.setTitle("关于我们"); 使返回箭头出现 actionBar.setDisplayHomeAsUpEnabled(true); 监听返回按 ...

  2. CSS基础 外部样式表 内嵌样式表 行内样式表

    CSS简述:css是Cascading Style Sheet的缩写,直译过来为层叠样式表或级联样式表,简称样式表.利用css样式表定义页面样式,将会大大减少设计工作量.一些好的css样式表的建立,可 ...

  3. android学习之-Style样式的定义

    这个例子主要是写了配置文件,main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa ...

  4. android ratingbar 高度,Android RatingBar终极解决方案,大小、颜色、间距、样式随便定义...

    用过RatingBar的都知道,这玩意比较坑,不好调整大小.间距.颜色及样式等难以自定义.这里给出一个RatingBar的终极解决方案-AndRatingBar. AndRatingBar开源库,它继 ...

  5. android popupmenu 自定义样式,Android:自己定义PopupMenu的样式(显示图标/设置RadioButton图标)...

    PopupMenu是Android中一个十分轻量级的组件.与PopupWindow相比,PopupMenu的可自己定义的能力较小,但使用更加方便. 先上效果图: 本例要实现的功能例如以下: 1.强制显 ...

  6. Android TextView使用HTML处理字体样式、显示图片等

    一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操 ...

  7. android 系统自带主题样式及自定义主题样式

    From: http://blog.csdn.net/dawanganban/article/details/17732701 http://www.cnblogs.com/bluestorm/arc ...

  8. Android中Theme主题和Style样式使用介绍总结

    1.Theme主题 1.1.Theme主题作用范围 Theme主要是针对应用级别的或者说窗体级别,可以设置应用主题(应用换肤效果)和Activity的主题:主题是不能应用在某一个单独的View中:或者 ...

  9. Android toolbar menu 字体点击样式

    今天在做toolbar的时候,右边的菜单的点击事件,就是文字,然后文字的样式,文字的大小,文字的颜色,高了半天.最后发现,文字点下去之后是有样式的,也就是按下去有阴影. 哥哥的耐心好,就知道这不是问题 ...

最新文章

  1. 与旷视、商汤等上百家企业同台竞技?AI Top 30+案例评选等你来秀!
  2. 怎样知道一个数是不是2的N次方,怎样判断一个数是奇数还是偶数
  3. Mybatis like查询的写法--转载
  4. 浅谈PHP在各系统平台下的换行符
  5. nginx session共享_Centos下实现nginx负载均衡
  6. 获取数组中元素值为偶数的累加和与元素值为奇数的累加和,并计算他们之间的差值
  7. node.js第十课(HTTPserver)
  8. 如何学习微信小程序? 学习微信小程序所需基础
  9. LoadRunner教程(24)-LoadRunner 读取Excel数据参数化
  10. 音视频中的码率控制(CBR、VBR、CVBR、FIXQP)
  11. 谈谈IT行业的各种证书
  12. 103000大写加零吗_关于支票金额大写规范写零的问题,比如1008712元,100万后要不要加零...
  13. 关于阿里云windows服务器上ping不通公网 ip 的解决思路
  14. Web实时语音/视频聊天/文件传输
  15. 【原创】我所认识的银行业务之旅(开篇)
  16. Win10 schtasks 不稳定问题
  17. 基于python的停车场管理系统的设计与实现/智能停车管理系统
  18. 幂律分布(python)
  19. Altium Designer PCB封装库放置3D模型对齐问题的解决思路
  20. 如何通过企业微信便捷访问华为云、阿里云?

热门文章

  1. 【译】NoClassDefFoundError和ClassNotFoundException的不同
  2. Java高质量代码之 — 泛型与反射
  3. 关于《详解》第12.1节按键驱动的进一步阐述
  4. python在函数内部有没有办法定义全局变量_主函数内部的全局变量python
  5. Fiddler中response乱码的解决方案
  6. Oracle Minus关键字 不包含 取差集
  7. Spring IOC容器【p名称空间注入属性值 】
  8. python 百度ocr识别_Python使用百度Ocr识别文字保存CSV
  9. h5文字垂直居中_CSS中垂直居中和水平垂直居中的方法
  10. aes离线解密工具_如何在Python中解密OpenSSL AES加密文件?