【发布时间】:2015-01-10 13:46:45
【问题描述】:
所以我正在尝试使用自定义颜色创建涟漪效果,并且有点成功,除了涟漪效果会移除原始背景并因此创建半透明的涟漪效果,这不是我想要的。
布局:
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="Clicky"
android:colorControlHighlight="@android:color/holo_blue_light"
android:background="@drawable/selector">
</Button>
drawable/selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ripple"/>
<item android:drawable="@color/normal"/>
</selector>
drawable/ripple.xml:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#7f7">
</ripple>
颜色.xml
<resources>
<color name="normal">#070</color>
</resources>
在叠加涟漪效果的同时,如何保持绿色 (#070) 背景?我相信这就是意图,对吧?
编辑
按照 AcademicDuck 的建议,我现在介绍了 shape:
drawable/red_shape.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/normal" />
</shape>
这个形状被现在修改的波纹引用:
drawable/ripple.xml:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:drawaleb="@drawable/red_shape">
</ripple>
现在的变化是,当我按下时,背景是纯红色而不是透明。不过还是没有涟漪。
【问题讨论】: