我有不同的draw9patch png作为背景的按钮。目前,按钮由selector控制,其外观如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/disabled" android:state_enabled="false"/>
<item android:drawable="@drawable/focused" android:state_focused="true"/>
<item android:drawable="@drawable/default"/>
</selector>对于Android ,它们有一个用于触摸效果的RippleDrawable,它的作用如下:
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight">
<item>
...
</item>
</ripple>关于新的触控波纹效应:
1:我可以把draw9patch设置为RippleDrawable的背景吗?
2:如何容纳上述两种不同的xml想要遵循的材料设计?是否必须为新的RippleDrawable发送一个新的文件夹/布局xml?
发布于 2014-07-07 23:39:15
1)是。有关层是如何组合的更多细节,请参见RippleDrawable文档,但基本上您希望:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item android:drawable="@drawable/yourninepatch" />
</ripple>或者也要以干净的方式处理禁用状态,您可能需要:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item>
<selector>
<item android:state_enabled="false">
<nine-patch
android:src="@drawable/yourninepatch"
android:alpha="?android:attr/disabledAlpha" />
</item>
<item>
<nine-patch android:src="@drawable/yourninepatch" />
</item>
</selector>
</item>
</ripple>2)是的,您应该将您的纹章XML放在可绘制的-v21中。
https://stackoverflow.com/questions/24607339
复制相似问题