Ste*_*his 11 android ripple rippledrawable android-5.0-lollipop
关于如何正确使用Ripple Drawable,我有点迷茫.
假设我有这个可绘制的:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="false" android:state_focused="true" android:drawable="@color/accent_color_light" />
<item android:state_pressed="true" android:drawable="@color/accent_color_light" />
<item android:drawable="@android:color/white" />
</selector>
Run Code Online (Sandbox Code Playgroud)
因此它是一个纯白色的背景,在聚焦或按下时会变成淡蓝色.
如何获得相同的颜色但具有连锁效果?我想我需要使用一个掩码来防止它超出视图范围?
Ste*_*his 24
忘了回答我自己的问题.
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime"
android:color="@color/my_color" >
<item android:id="@android:id/mask">
<shape android:shape="rectangle" >
<solid android:color="@android:color/holo_green_light" />
</shape>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
不显示具有id"mask"的项目中的颜色.它用于表示涟漪效应的形状和界限.没有它,它可以超出视图的范围.
ahm*_*dre 22
RippleDrawable已经是一个StateListDrawable(即selector) - 所以你可以使用一个波纹drawable作为你的背景(默认状态) - 像这样:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/accent_color_light">
<item android:id="@android:id/mask">
<color android:color="@android:color/white" />
</item>
<item android:drawable="@android:color/white" />
</ripple>
Run Code Online (Sandbox Code Playgroud)
屏蔽片限制了波纹(实际上,上面的片段,减去了颜色,最后android:drawable一个设置了非按下的背景)是棒棒糖中使用的默认列表选择器.
| 归档时间: |
|
| 查看次数: |
12997 次 |
| 最近记录: |