这就是我需要的:
显示您按下它的选择器。但是这个选择器也可以处理长按颜色过渡。我看了很多,发现this。这基本上是我需要的,但这只适用于图像,而不适用于颜色。这是我现在的代码:
default_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:drawable="@android: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="@android:color/transparent" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@android:color/transparent" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/default_selector_transition" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/default_selector_transition" />
<item android:state_focused="true" android:drawable="@color/selection_grey" />
<item android:state_activated="true" android:drawable="@color/selection_grey"/>
<item android:drawable="@android:color/transparent" />
</selector>
default_selector_transition.xml:
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_pressed_default" />
<item android:drawable="@drawable/list_longpressed_default" />
</transition>
default_selector_transition.xml中的drawable现在是9个补丁。我想知道是否可以将其更改为颜色。
我尝试了什么:
<drawable name="selection_grey_drawable">#BDBDBD</drawable>
)我希望你们能为我找到解决方案!
答案 0 :(得分:2)
使用颜色而不是可绘制颜色对你不起作用?
如果没有,您仍然可以尝试在其中创建一个单独的drawable
文件shapes
。例如:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/your_color_1" />
</shape>
和
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/your_color_2" />
</shape>
然后在default_selector_transition.xml
:
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/first_shape" />
<item android:drawable="@drawable/second_shape" />
</transition>
编辑:
主要的问题是你的代码根本不适用于我,即使有9个补丁......
Android开发人员documentation说:
<item>
定义一个drawable,用作drawable过渡的一部分。 必须是<transition>
元素的子元素。接受孩子<bitmap>
元件。
因此,如果您的代码适合您,您仍然可以尝试欺骗drawable
使用正在使用颜色创建的bitmap
子项?
这样的事情应该有效:
<bitmap
android:src="@drawable/dummy_bitmap"
android:tint="@color/your_color"
android:tileMode="repeat"/>
dummy_bitmap
只是一些可绘制的“填充”此位图中所需的src
字段。
也许是这样的:
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap
android:src="@drawable/NOT_transparent_dummy_bitmap"
android:tint="@color/your_color_1"
android:tileMode="repeat"/>
</item>
<item>
<bitmap
android:src="@drawable/NOT_transparent_dummy_bitmap"
android:tint="@color/your_color_2"
android:tileMode="repeat"/>
</item>
</transition>