Soh*_*aib 56 android rippledrawable android-5.0-lollipop
如何android:state_selected在RippleDrawable中指定
我有跟随xml的ripple drawable但我设置时没有显示背景颜色 myView.setSelected(true);
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#DDDDDD"
>
<item android:id="@android:id/mask">
<shape>
<solid
android:color="@color/black" />
</shape>
</item>
<item android:state_selected="true">
<shape>
<solid
android:color="#EEEEEE" />
</shape>
</item>
<item>
<color android:color="#FFFFFF" />
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
Soh*_*aib 93
找到答案,以防其他人遇到同样的问题
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#DDDDDD"
>
<item>
<selector>
<item android:state_selected="true">
<color android:color="#EEEEEE" />
</item>
<item android:state_activated="true">
<color android:color="#EEEEEE" />
</item>
<item>
<color android:color="#FFFFFF" />
</item>
</selector>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
tir*_*r38 14
要添加到@Sohaib的答案:
@Alanv是对的,OP不需要面具.但是,如果你的一个选择器状态是透明的,你需要一个掩码,它会在这里:
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/ripple_color">
<!-- mask here... -->
<item android:id="@android:id/mask">
<color android:color="@color/black"/> <!-- any color will do -->
</item>
<item>
<selector>
<!-- ... NOT here. -->
<item android:state_selected="true">
<color android:color="@color/blue"/>
</item>
<item android:state_activated="true">
<color android:color="@color/red"/>
</item>
<item>
<color android:color="@color/transparent"/>
</item>
</selector>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
我最初在我的选择器里面有一个面具:boom:
将上述答案与其他答案结合起来:
Ripple,colorPrimary或colorAccent的颜色应该是多少?(材料设计)
产生良好的涟漪效果,当项目处于选定状态时也适用.
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<!-- Ripple mask - applied to all selector states -->
<item android:id="@android:id/mask">
<color android:color="#42ffffff" />
</item>
<!-- Selected state of item -->
<item>
<selector>
<item android:state_selected="true">
<color android:color="?attr/colorAccent" />
</item>
</selector>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
这在你的drawable-v21文件夹中,对于其他平台,你可以创建一个使用强调颜色的选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/accent" android:state_selected="true"/>
<item android:drawable="@color/accent" android:state_pressed="true"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21291 次 |
| 最近记录: |