14

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>

そのため、焦点を合わせたり押したりすると水色に変わる無地の白い背景です。

同じ色を波及効果で取得するにはどうすればよいですか? ビューの境界外に出ないようにマスクを使用する必要があると思いますか?

4

2 に答える 2

25

RippleDrawableはすでにStateListDrawable(つまりselector) です。つまり、リップル ドローアブルを背景として (デフォルトの状態で) 使用できます。次のようなものです。

<?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>

android:drawableマスク ピースはリップルを境界付けます (実際には、上記のスニペットから色と押されていない背景を設定する最後のスニペットを差し引いたもの) が、ロリポップで使用されるデフォルトのリスト セレクターです。

于 2014-12-07T08:29:08.007 に答える