2016-09-09 1 views
2

すべてのButtonスタイルをデフォルトのマテリアルデザインスタイルから継承し、ボタンを押すときに表示される背景色と影(標高)を保持したいと思います。私が変更したいのは、リップル効果の色です(ボタンに触れてから指を動かすとき)。他のスタイルプロパティを維持しながらAndroidボタンの波紋の色を変更するにはどうすればよいですか?

私は以下のスタイルを使用する場合:ある

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="android:buttonStyle">@style/MyTheme.Button</item> 
</style> 

<style name="MyTheme.Button" parent="Widget.AppCompat.Button.Colored"> 
    <item name="android:background">@drawable/btn_material</item> 
</style> 

とbtn_material /描画可能に:

<ripple android:color="#ffff0000"> 
    <item android:id="@android:id/mask" 
    android:drawable="@android:color/white" /> 
</ripple> 

その後、私のボタンは、その背景色と標高影を失います。

デフォルトの色と影が親から継承され続けるとだけ指定されたもので、リップルの色を置き換えるために、ボタンを伝える方法はありますか?本質的には、android:backgroundRippleのような何かを達成したいと思います。

答えて

2

RippleDrawableリップル=(RippleDrawable)view.getBackground();

INT [] [] ATTR =新しいINT [] [] {新しいINT [] {android.R.attr.state_enabled}}。 int [] colors =新しいint [] {Color.RED}; //は赤色

ColorStateList色=新しいカラー(状態、色)にリップル色を設定します。 ripple.setColor(color);

関連する問題