Android 用户界面---操作栏(Action Bar 五)

翻译 2012年03月21日 16:04:28
设置操作栏的样式

如果你对应用程序中的可视构件进行了定制化的设计,那么你可能也会要对操作栏做一些重新设计,以便跟应用程序的设计匹配。要这样做的话,需要使用Android的样式与主题框架中的一些特殊的样式属性来重新设置操作栏的样式。

注意:改变外观的背景图片依赖与当前按钮的状态(选择、按下、解除选择),因此你使用的可描画的资源必须是一个可描画的状态列表。

警告:对于你提供的所有可描画的背景,要确保使用NinePatch类型可描画资源,以便允许图片的拉伸。NinePatch类型的图片应该比40像素高30像素宽的图片要小。

普通的外观

android:windowActionBarOverlay

这个属性声明了操作栏是否应该覆盖Activity布局,而不是相对Activity的布局位置的偏移。这个属性的默认值是false。

通常,在屏幕上,操作栏需要它自己的空间,并且把剩下的空间用来填充Activity的布局。当操作栏四覆盖模式时,Activity会使用所有的有效空间,系统会在Activity的上面描画操作栏。如果你想要在操作栏隐藏和显示时,布局中的内容保持固定的尺寸好位置,那么这种覆盖模式是有用的。你也可能只是为了显示效果来使用它,因为你可以给操作栏设置半透明的背景,以便用户依然能够看到操作栏背后的Activity布局。

注意:默认情况下,Holo主题会用半透明背景来描画操作栏。但是,你能够用自己的样式来修改它,并且默认的情况下,DeviceDefault主题在不同的设备上可能使用不透明的背景。

覆盖模式被启用时,Activity布局不会感知到操作栏覆盖在它的上面,因此,在操作栏覆盖的区域,最好不要放置一些重要的信息或UI组件。如果适合,你能够引用平台的actionBarSize值来决定操作栏的高度,例如,在XML布局文件中引用这个值。

<SomeView
    ...
    android:layout_marginTop="?android:attr/actionBarSize" />

你还能够用getHeight()方法在运行时获取操作栏的高度。如果在Activity生存周期的早期调用这个方法,那么在调用时所反映的操作栏的高度可能不包括被堆放的操作栏(因为导航选项标签)。要看如何在运行时判断操作栏总的高度(包括被堆放的操作栏),请看Honeycomb Gallery示例应用中的TitlesFragment类。

http://developer.android.com/resources/samples/HoneycombGallery/index.html

操作项样式

android:actionButtonStyle

   给操作项按钮定义样式资源。

android:actionBarItemBackground

   给每个操作项的背景定义可描画资源(被添加在API 级别 14中)。

android:itemBackground

   给每个溢出菜单项的背景定义可描画资源。

android:actionBarDivider

   给操作项之间的分隔线定义可描画资源(被添加在API 级别 14中)

android:actionMenuTextColor

   给显示在操作项中文本定义颜色。

android:actionMenuTextAppearance

   给显示在操作项中文本定义样式资源。

android:actionBarWidgetThem

   给作为操作视窗被填充到操作栏中的可视构件定义主题资源(被添加在API级别14中)。

导航选项标签样式

android:actionBarTabStyle

   给操作栏中的选项标签定义样式资源。

android:actionBarTabBarStyle

   给显示在导航选项标签下方的细条定义样式资源。

android:actionBarTabTextStyle

   给导航选项标签中的文本定义样式资源。

下拉列表样式

android:actionDropDownStyle

   给下拉导航列表定义样式(如背景和文本样式)。

如,下例XML文件中给操作栏定义了一些定制的样式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActivityTheme" parent="@android:style/Theme.Holo">
        <item name="android:actionBarTabTextStyle">@style/CustomTabTextStyle</item>
        <item name="android:actionBarDivider">@drawable/ab_divider</item>
        <item name="android:actionBarItemBackground">@drawable/ab_item_background</item>
    </style>

    <!-- style for the action bar tab text -->
    <style name="CustomTabTextStyle" parent="@android:style/TextAppearance.Holo">
        <item name="android:textColor">#2456c2</item>
    </style>
</resources>

注意:一定要在<style>标签中声明一个父主题,这样定制的主题可以继承所有没有明确声明的样式。在修改操作栏样式时,使用父主题是至关重要的,它会让你能够简单的覆写你想要改变的操作栏样式,而不影响你不想修改的样式(如文本的外观或操作项的边缘)。

你能够在清单文件中把定制的主题应用到整个应用程序或一个单独的Activity对象,如:

<application android:theme="@style/CustomActivityTheme" ... />

高级样式

如果需要比上述属性更高级的样式,可以在Activity的主题中包含android:actionBarStyle和android:actionBarSplitStyle属性。这两个属性的每一个都指定了另一种能够给操作栏定义各种属性的样式,包括带有android:background、android:backgroundSplit、android:backgroundStacked属性的不同背景。如果要覆盖这些操作栏样式,就要确保定义一个像Widget.Holo.ActionBar这样的父操作栏样式。

例如,如果要改变操作栏背景,你可以使用下列样式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActivityTheme" parent="@android:style/Theme.Holo">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <!-- other activity and action bar styles here -->
    </style>

<!-- style for the action bar backgrounds -->
    <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
        <item name="android:background">@drawable/ab_background</item>
        <item name="android:backgroundStacked">@drawable/ab_background</item>
        <item name="android:backgroundSplit">@drawable/ab_split_background</item>
    </style>

</resource>

 

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

android客户端设置界面开发实例

我们在开发软件的时候,都会填一个功能就是设置,查看很多软件大多数都是圆角形式,最近在帮一个客户做直播客户端也要添加一个设置界面,因此分享一下制作过程先看一下效果图(上面还包含一个头,但是里面含有客户信...

Android 进入手机app 设置界面

/** * 跳转到miui的权限管理页面 */ private void gotoMiuiPermission() { Intent i = new Int...

Android_ActionBar

简介 Android3.0之后出现了ActionBar,一种全新的UI设计风格。 Android官网为了使开发者更加了解新UI设计风格,也专门给出了一个板块来介绍design的东西,其中也有Acti...

ActionBar最近学习整理之二:风格自定义

上一篇介绍了ActionBar的选项内容和菜单项,项目中会遇到需要自定义风格的标题栏,CustomView不建议用来定义控件风格,因为没有用到ActionBar的默认组件,如果UIDesigner完全...
  • klpchan
  • klpchan
  • 2013年08月18日 19:56
  • 12730

java对象复制举例

private Object propertyChange(Object object){ try { return (Object) BeanUtils.cloneBean(object); ...
  • zdnlp
  • zdnlp
  • 2013年11月15日 09:54
  • 568

Android:布局实例之常见用户设置界面

转载自; http://www.cnblogs.com/tinyphp/p/3831562.html

Android 用户界面---操作栏(Action Bar 三)

添加操作视窗 操作视窗是作为操作项目按钮的替代品显示在操作栏中的一个可视构件。例如,如果你有一个用于搜索的可选菜单项,你可以用SearchView类来替代操作栏上的搜索按钮,如图7所示: 图7...

Android 用户界面---操作栏(Action Bar 四)

创建一个定制的操作提供器 当你想要创建一个有动态行为和在溢出菜单中有默认图标的操作视窗时,,继承ActionProvider类来定义这些行为是一个比好的的方案。创建自己的操作提供器,提供一个有组织的...

Android 用户界面---操作栏(Action Bar 二)

选择操作项 通过评估一些关键的特性,你应该仔细的选择选项菜单中的那些菜单项应该作为操作项来显示,通常,每个操作项应该至少满足下列特性之一: 1.  经常使用:用户百分之七十以上的访问都需要使用的操...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 用户界面---操作栏(Action Bar 五)
举报原因:
原因补充:

(最多只允许输入30个字)