【发布时间】:2011-04-10 19:53:21
【问题描述】:
我想在我的 android 应用程序中使用一个按钮,但我想自定义它的外观。但是,我希望按钮的突出显示颜色和选定颜色与默认颜色相同(即深橙色和浅橙色渐变,或主题颜色提供的任何颜色)。
有没有办法获得默认的高亮/选定的可绘制对象并将其用作我的按钮在选定和高亮状态下的填充?
谢谢!
【问题讨论】:
标签: android button colors themes
我想在我的 android 应用程序中使用一个按钮,但我想自定义它的外观。但是,我希望按钮的突出显示颜色和选定颜色与默认颜色相同(即深橙色和浅橙色渐变,或主题颜色提供的任何颜色)。
有没有办法获得默认的高亮/选定的可绘制对象并将其用作我的按钮在选定和高亮状态下的填充?
谢谢!
【问题讨论】:
标签: android button colors themes
你要求两个不同的东西,你想要drawables还是colorcode?p>
无论如何,您可以在这里找到可绘制对象的名称:http://androiddrawableexplorer.appspot.com/ 我不知道你是否可以直接从你的应用程序中使用它们,或者你是否必须先将它们保存到你的 drawables 文件夹中,但你可以在你的 sdk 中找到它们。如果您想要颜色代码,请使用 gimp 从图片中提取它们。
【讨论】:
您似乎可以在选择器中使用选择器作为可绘制对象!
(你可以或不应该使用@android:drawable/btn_default_selected,因为它是私有的)
这意味着您可以编写自己的选择器,并为您想要默认行为的项目使用整个默认的 android 选择器。
我使用了这个选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@android:drawable/btn_default" android:state_pressed="true"/>
</selector>
并将其作为背景添加到线性布局中。 我不知道为什么,但这也弄乱了填充/边距,这就是我将它们设置为 0 的原因。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_linear_layout_button"
android:padding="0dp"
android:layout_margin="0dp"
android:orientation="vertical" >
<!-- YOUR LAYOUT THAT ACTS LIKE A BUTTON -->
</LinearLayout>
结果是你有未按下状态的父背景颜色和按下状态的android背景颜色。
【讨论】: