2

私は持っていLinearLayoutます。波及効果を適用しましたが、正常に機能しています。私がやっているのは、ユーザーがクリックすると、色が白に変わるはずです(デフォルトはグレーです)。もう一度クリックすると、再び灰色になります。これは を使用して達成しlayout.setBackgroundColor(Color.WHITE);ました。

しかし、波紋とこの色の切り替えの両方が必要です。を使えばsetBackgroundColor波及効果は消えます。これを行う方法についての手がかりはありますか?

波紋の XML ( の背景LinearLayout):

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/divider">
<item android:drawable="@color/background" />
</ripple>

ロリポップ以前のデバイス向けの同等のソリューションを提案してください。ロリポップ前の背景LinearLayoutは、

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/divider" android:state_pressed="true" />
<item android:drawable="@android:color/transparent" />
</selector>
4

1 に答える 1

1

setBackgroundColor の代わりにsetImageDrawable()、xml レイアウト (R.drawable.your_layout) の ID を使用して渡します。

2 つの異なる xml レイアウトを定義します。1 つは背面が灰色で、もう 1 つは背景が白色です。

白色の背景

 <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/divider">
    <item android:drawable="#ffffff" />
    </ripple>

灰色の背景

 <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/divider">
    <item android:drawable="888888" />
    </ripple>
于 2015-05-26T18:27:16.120 に答える