按列表项的默认drawable是什么

时间:2010-08-17 21:08:08

标签: android state selector

当用户按下ListView项目(android:state_pressed =“true”)时,它会闪烁一个黄色(或者你可以按住)。

这是什么抽象的?我已经创建了自己的选择器,因为我想要自己的ListView项目颜色,但是我失去了按下的颜色。

有一个关于皮肤按钮的Android文档引用了#ffff0000,但这会产生红色。

有谁知道它是什么以及如何引用它?

4 个答案:

答案 0 :(得分:36)

可在<android-sdk>/platforms/android-<version>/data/res中找到默认系统资源。特别是,列表选择器在drawable/list_selector_background.xml

中定义
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_window_focused="false"
        android:drawable="@color/transparent" />

    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
    <item android:state_focused="true" android:state_enabled="false"
        android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_disabled" />
    <item android:state_focused="true" android:state_enabled="false"
        android:drawable="@drawable/list_selector_background_disabled" />

    <item android:state_focused="true" android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_transition" />
    <item android:state_focused="false" android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_transition" />

    <item android:state_focused="true"
        android:drawable="@drawable/list_selector_background_focus" />

</selector>

印刷机list_selector_background_transition上显示的抽屉不是单一颜色,而是两个9补丁图像,黄色和白色,并在它们之间有动画过渡。

<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:drawable/list_selector_background_pressed"  />
    <item android:drawable="@android:drawable/list_selector_background_longpress"  />
</transition>

答案 1 :(得分:2)

你所谈论的是Android OS内置选择器。

使用您的drawable文件夹中的xml文件创建自己的高亮显示,如下所示:

<?xml version="1.0" encoding="utf-8"?>
  <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  <item android:state_pressed="true" android:color="#YOURCOLOR" /> 
  <item android:color="#FE896F" /> 
</selector>

然后在你的XML文件中有你的ListView。

android:textColor="@drawable/highlight" //For text to appear like YOURCOLOR
//or if you wish the background
android:background="@drawable/highlight" //For the background to appear like YOURCOLOR

我希望就是这样,告诉我这是否有效!

答案 2 :(得分:1)

颜色定义为#AARRGGBB,其中AA表示alpha(透明度)值,RR表示红色,GG表示绿色,BB表示蓝色。因此,#ffff0000是坚实的,全是红色的。如果你想要橙色,你想添加一些绿色,即:#ffffA500。谷歌的RGB颜色值可以查看颜色页面的rgb值。

答案 3 :(得分:0)

我在照片编辑应用程序中使用了一个颜色选择器工具来查找渐变的外部和内部颜色并制作了我自己的颜色。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#ffb300"
        android:centerColor="#ffc800"
        android:endColor="#ffb300"
        android:angle="270"/>
</shape>