I am trying to understand how to programmatically change the color of a drawableLeft / drawableRight button. I used drawable tint in my xml as below, which works> api level 23 but not able to change color <api level 23
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="VIEW ALL" android:layout_centerInParent="true" android:background="#00000000" android:drawableLeft="@mipmap/ic_menu_black_36dp" android:layout_centerVertical="true" android:id="@+id/view_all" android:textColor="@color/bottom_color" android:drawableTint="@color/bottom_color" /> Button prev = (Button) findViewById(R.id.prev); Drawable[] drawables =prev.getCompoundDrawables(); drawables[0].setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY); prev.setCompoundDrawables(drawables[0],null,null,null);
Decision:
Drawable[] drawablesprev =prev.getCompoundDrawables(); //for drawableleft drawable array index 0 drawablesprev[0].setColorFilter(getResources().getColor(R.color.assessment_bottom), PorterDuff.Mode.SRC_ATOP); //for drawableright drawable array index 2 drawablesprev[2].setColorFilter(getResources().getColor(R.color.assessment_bottom), PorterDuff.Mode.SRC_ATOP); //for drawabletop drawable array index 1 drawablesprev[1].setColorFilter(getResources().getColor(R.color.assessment_bottom), PorterDuff.Mode.SRC_ATOP);
user6457240
source share