1

我已经看到了两种为 Android 应用程序屏幕设置背景的方法。

案例 A:: android:background="?attr/actionBarItemBackground"

案例 B:: android:background="@drawable/ic_launcher_settings"

案例 A 中的 android:background 功能如何?我搜索了代码,但无法弄清楚“actionBarItemBackground”的存在位置。我理解案例B

4

1 回答 1

2

案例 A 是对样式属性的引用。它允许您在不知道其实际值的情况下引用特定的样式信息。有很多 Android 定义的属性用于设置 Android UI 的样式,但您也可以定义自己的属性。

actionBarItemBackground就是这样一个属性。有两种方法可以使用此属性:

  1. 您可以参考它以使 UI 元素的外观与操作栏项保持一致:

    <com.mycompany.MyView
        android:id="@+id/myView"
        android:background="?attr/actionBarItemBackground"/>
    
  2. 您可以定义主题并设置此属性的值以覆盖您的应用程序的默认 L&F:

    <style name="MyTheme" parent="@android:style/Theme">
        <item name="android:actionBarItemBackground">#383c44</item>
    </style>
    

以下是一些指向 Android 文档的指针:

有关样式和主题,请参见:http:
//developer.android.com/guide/topics/ui/themes.html

有关所有属性的列表,请参见:http:
//developer.android.com/reference/android/R.attr.html

对于定义您自己的属性,没有文档。attrs.xml查看SDK 中的一个文件(例如,在 下platforms\android-17\data\res\values),了解样式属性是如何声明的。attrs.xml您可以通过将文件放入文件夹中以相同的方式声明属性res\values。然后,您可以在自己的样式和主题中使用这些属性。

于 2013-01-17T22:12:56.683 回答