Android:在自定义按钮中使用默认突出显示颜色

时间:2010-09-10 16:31:06

标签: android button colors themes

我想在我的Android应用程序中使用Button,但我想自定义它的外观。但是,我希望按钮的高亮和选定颜色与默认颜色相同(即深色和浅橙色渐变,或主题颜色提供的任何颜色)。

是否有获得默认突出显示/选定的drawable并将其用作所选和突出显示状态下按钮的填充?

谢谢!

3 个答案:

答案 0 :(得分:3)

你要求两个不同的东西,你想要drawables还是colorcode?

无论如何,你可以在这里找到drawables的名字:http://androiddrawableexplorer.appspot.com/ 我不知道你是否可以直接在你的应用程序中使用它们,或者你必须先将它们保存到drawables文件夹中,但你可以在你的sdk中找到它们。如果你想要颜色代码,使用gimp从图片中提取它们。

答案 1 :(得分:3)

似乎你可以在选择器内使用选择器作为drawable! (您可以或不应该使用@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背景颜色。

答案 2 :(得分:0)

Selectors正是您要找的。谷歌周围的教程。这是one

我假设您可以在Android源代码中找到默认选择器。