2017-04-20 51 views
0
<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
     android:color="?android:attr/colorControlHighlight"> 
    <item> 
     <selector> 
      <item android:state_selected="true"> 
       <layer-list> 
        <item android:left="-5dp" 
          android:top="-5dp" 
          android:right="-5dp"> 
         <shape android:shape="rectangle"> 
          <stroke android:width="3dp" 
            android:color="@android:color/white"/> 
          <solid android:color="@android:color/transparent"/> 
         </shape> 
        </item> 
       </layer-list> 
      </item> 
      <item android:state_selected="false"> 
       <shape android:shape="rectangle"> 
        <solid android:color="@android:color/transparent"/> 
       </shape> 
      </item> 

     </selector> 
    </item> 
</ripple> 

這裏是我的紋波繪製,我想改變state_selected固體顏色。如何更改可繪製波紋的純色?

代碼,我已經試過:

RippleDrawable rippleDrawable = (RippleDrawable) textView.getBackground(); // assumes bg is a RippleDrawable 
     int[][] states = new int[][]{new int[]{android.R.attr.state_selected}}; 
     int[] colors = new int[]{R.color.white}; 
     ColorStateList colorStateList = new ColorStateList(states, colors); 
     rippleDrawable.setColor(colorStateList); 

unfortuantely它不工作..我是什麼人失蹤,這可能嗎?

+0

HTTP施加

val background = constraintLayout.background as RippleDrawable val bgShape = background.findDrawableByLayerId(R.id.fab_shape) as GradientDrawable bgShape.color = color 

。 com/questions/26967872/create-a-ripple-drawable-without-transparency使用掩碼。 – reidisaki

回答

1

你應該添加一個id到項目以通過java/kotlin訪問它們。 //計算器:
檢查此背景XML文件

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="#e0e0e0"> 
    <item android:id="@+id/fab_shape"> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <corners android:radius="25dp" /> 
     <solid android:color="@color/colorAccent" /> 
    </shape> 
    </item> 
</ripple> 

改變此固體顏色,在constraintLayout背景,這可繪XML是參考read this