Android的ListView中选择颜色 [英] Android ListView Selector Color
问题描述
大家好,
我有2个问题关于在Android中一个ListView:
I have 2 questions regarding a ListView in Android:
-
我怎么能获得 ListView的焦点行的颜色? 我试图使用 ListView.getSelector()方式,根据其文档应该给我,我要找的,但它给我,我不知道如何检索可绘制对象从颜色(如果可能的话...)。
How can I get the color of the listview's focused row ? I tried to use the ListView.getSelector() method, which according to its documentation should give me what I'm looking for, but it's giving me a Drawable object which I don't know how to retrieve the color from (if possible...).
我怎么能设置 ListView的焦点行的颜色? 在这里,我试图使用 setSelector()方式上的列表视图,传递一个ColorDrawable对象,但这样做的结果是,列表视图的整个背景是画在色彩...这不是我想要的东西,当然...
How can I set the color of the listview's focused row ? Here I tried to use the setSelector() method on the listview, passing it a ColorDrawable object, but the result of doing it is that the whole background of the list view is painted in that color... and this is not what I wanted of course...
谢谢!
推荐答案
该列表选择可绘制的是<一个href="http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html"><$c$c>StateListDrawable$c$c> &mdash;它包含引用到多个可绘制每个状态的列表可以,比如选择,有重点,pressed,残疾人......
The list selector drawable is a StateListDrawable
— it contains reference to multiple drawables for each state the list can be, like selected, focused, pressed, disabled...
虽然你可以使用检索绘制 getSelector()
,我不相信你可以检索特定绘制对象
从 StateListDrawable
,也不会似乎可以以编程方式直接获取颜色 ColorDrawable
反正。
While you can retrieve the drawable using getSelector()
, I don't believe you can retrieve a specific Drawable
from a StateListDrawable
, nor does it seem possible to programmatically retrieve the colour directly from a ColorDrawable
anyway.
至于设置颜色,你需要一个 StateListDrawable
如上所述。您可以使用 Android的设置这个清单上:listSelector
属性,定义绘制在XML中是这样的:
As for setting the colour, you need a StateListDrawable
as described above. You can set this on your list using the android:listSelector
attribute, defining the drawable in XML like this:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:state_focused="true"
android:drawable="@drawable/item_disabled" />
<item android:state_pressed="true"
android:drawable="@drawable/item_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/item_focused" />
</selector>
这篇关于Android的ListView中选择颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!