web-dev-qa-db-ja.com

Android:デフォルトの状態の色が透明である波紋効果がありますか?

次のようなものですが、動作しません。ドローアブルカラーをブルーなどに切り替えると動作します。

<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:color="?android:colorControlHighlight">
    <item Android:drawable="@Android:color/transparent"/>
</ripple>
23
ZakTaccardi

マスクを追加する必要があります:

<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:color="?android:colorControlHighlight">
     <item Android:id="@Android:id/mask">
       <color Android:color="@Android:color/white" />
     </item>
</ripple>
83
JMPergar

どういうわけか、@ JMPergarの答えは私にはうまくいきませんでした。

ただし、この回避策を考えることができました。透明なボタンの後ろの色が単色(グラデーションや斑点のある画像ではない)の場合、その色をメインボタンの押されていない色として使用できます。

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:color="@color/profile_transparent_button_pressed"
        >

    <item>
        <shape>
            <corners Android:radius="@dimen/profile_transparent_button_corner_radius" />
            <solid Android:color="@color/profile_background" />
        </shape>
    </item>
</ripple>

どこ @color/profile_transparent_button_pressedはボタンを強調する色であり、@color/profile_background-このボタンの背後にあるレイアウトの色。期待どおりに機能しますが、それでも確実に回避策であるため、最初に@JMPergarの回答を試してください。

2
Den Drobiazko