gpt4 book ai didi

android - 如何在 android 中以编程方式更改低于 api 级别 23 的按钮的可绘制色调

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:26 25 4
gpt4 key购买 nike

我想弄清楚如何以编程方式更改按钮的 drawableLeft/drawableRight 的颜色。我在我的 xml 中使用了可绘制的色调,如下所述,它可以工作 > api 级别 23 但无法更改颜色 < api 级别 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);

解决方案:

 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);

最佳答案

这是一种为 TextView 或 Button 可绘制对象着色的快速方法:

  private void tintViewDrawable(TextView view) {
Drawable[] drawables = view.getCompoundDrawables();
for (Drawable drawable : drawables) {
if (drawable != null) {
drawable.setColorFilter(getResources().getColor(R.color.colorPrimary), PorterDuff.Mode.SRC_ATOP);
}
}
}

关于android - 如何在 android 中以编程方式更改低于 api 级别 23 的按钮的可绘制色调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43407561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com