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

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

 
阅读更多
设置操作栏的样式

如果你对应用程序中的可视构件进行了定制化的设计,那么你可能也会要对操作栏做一些重新设计,以便跟应用程序的设计匹配。要这样做的话,需要使用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>

分享到:
评论

相关推荐

    android-support-v4 android-support-v7-appcompat

    Action Bar是Android应用中一种重要的UI元素,它提供了一种统一的导航和操作方式。`appcompat-v7`库通过引入一个自定义的ActionBar实现,使得开发者可以为旧版本的Android设备添加Action Bar功能。此外,它还包含了...

    android-support-v4+android-support-v7-appcompat组合包

    集成这两个库后,开发者就可以在Unity中使用Android的高级特性,比如使用Fragment来构建复杂的用户界面,或者利用AppCompat库提供的Material Design风格。然而,需要注意的是,由于Unity的特性,可能需要使用Java...

    android-support-v7和android-support-v7-recyclerview的classes.jar

    它提供了一个自定义的`Activity`类——`AppCompatActivity`,该类实现了对Material Design风格的支持,包括Action Bar、ToolBar以及主题颜色等,使得开发者可以在低版本Android设备上实现现代Android界面的风格。...

    android-support-v7-appcompat.zip

    在Android开发中,`android-support-v7-appcompat`库是一个至关重要的组件,它极大地扩展了Android API的功能,使得开发者能够在更广泛的设备上实现一致的用户界面和功能。这个库是Android Support Library系列的一...

    android支持包:android-support-v4

    `android-support-v4`库提供了对Fragment的兼容,使得开发者可以在更低版本的Android设备上使用Fragment来构建更加复杂的用户界面。Fragment可以单独添加、移除或替换到Activity中,从而实现动态的布局管理和更灵活...

    android_action-bar

    Action Bar是Android 3.0(API级别11)引入的,用于提供一个统一的用户界面元素,它包含了应用的Logo、标题、菜单项以及可扩展的操作。Action Bar的设计旨在提高应用的可发现性和可用性,让用户更容易地与应用进行...

    Action bar 操作栏

    在Android应用开发中,Action Bar(操作栏)是界面设计中的一个重要组成部分,它为用户提供了一种统一且高效的交互方式。这个部分将详细讲解Action Bar的基本概念、功能、设计原则以及如何在代码中实现。 一、...

    android-support-v4.jar,android-support-v7-appcompat.jar

    这个库中最显著的特性就是实现了ActionBar,使得开发者能够在旧版本的Android上使用类似于新版本中的Action Bar,提供统一的导航和操作界面。除此之外,它还支持Toolbar,这是一个可定制的视图,可以作为Activity的...

    blog.rar_android_android-support-v4_blog

    3. **AppCompatActivity**:基于`android.support.v7.app.AppCompatActivity`,提供了对ActionBar的支持,使得在API 14以下的版本也能使用Action Bar,提供统一的UI体验。 4. **PagerAdapter**:用于创建滑动界面,...

    Android-ObservableScrollView-master

    "Android-ObservableScrollView-master"是一个非常实用的开源库,它专注于解决一个常见的设计问题:如何优雅地处理ScrollView或NestedScrollView的滚动事件,并与诸如Toolbar(也称为Action Bar)这样的组件进行交互...

    自定义Android Action Bar的布局

    Action Bar是Android 3.0(API级别11)引入的一个特性,目的是为了提供一种更统一的用户界面设计。在Android 4.0(API级别14)及以后的版本中,它已经成为系统默认样式的一部分。即使在更早的版本,通过使用兼容库...

    android-actionbar-master.zip_android_android actionbar组件

    Action Bar为用户提供了一种统一的界面风格,使其与Android系统的其他应用保持一致,同时也提高了用户体验。本资源“android-actionbar-master.zip”提供了一个通用的Android ActionBar实现,旨在帮助开发者更高效地...

    android-support-v7.jar

    4. **菜单和选项菜单**:这个库还处理了菜单和选项菜单的适配问题,使得在低版本Android上也能使用Action Bar中的菜单项。 5. **自定义视图**:对于自定义视图,android-support-v7-appcompat库提供了一些抽象类,...

    android-actionbar-for-2.x.x.7z

    Action Bar是Android系统中的一种UI组件,主要用在应用程序的顶部,用于展示应用的标识、提供导航以及常用操作。在Android 3.0(API级别11)及更高版本中,Action Bar是默认界面的一部分,但在早期版本如2.x(API...

    android-support-v4+v7

    此外,`appcompat-v7`还包含了对ToolBar、FloatingActionButton、Snackbar等Material Design组件的兼容,使得开发者能为老版本的Android设备提供现代感的用户界面。 除了`appcompat-v7`,`android-support-v7`库还...

    android-support-v7-appcompat【2分】

    1. **ActionBar**: 提供了一种在早期Android版本上实现类似Action Bar的界面元素,它包含了下拉菜单、搜索框和操作按钮等功能,显著提升了应用的导航体验。 2. **主题兼容性**: 允许开发者在低版本Android上使用...

    Android SDK 2.2-4.4

    - **行动栏(Action Bar)**:提供统一的导航和操作方式,简化了用户界面。 - **多窗口任务切换**:支持多窗口任务切换,提高了生产力。 - **碎片(Fragments)**:允许在单个活动中展示多个视图,适应不同屏幕尺寸...

    Android-Glass-Action-Bar-Sample

    标题“Android-Glass-Action-Bar-Sample”表明这是一个关于Android应用开发的项目示例,主要关注的是在Android设备上实现类似Google Glass的Action Bar设计。Action Bar是Android系统中的一个关键组件,它提供了应用...

    android-support-v4-v7

    2. `Toolbar`:作为可定制的Action Bar,提供了高度自定义的导航栏功能。 3. `RecyclerView`:高效的列表视图,可以处理大量的数据项,并支持滚动优化和动画效果。 4. `CardView`和`Material Design Components`:...

Global site tag (gtag.js) - Google Analytics