android – 用于以编程方式使用十六进制值/ ColorDrawable的按钮的setBackgroundTintList
作者:互联网
我试图以编程方式设置按钮的背景色调,而不是像完成here那样设置颜色资源,而是设置为十六进制值.目前,我已将十六进制值转换为ColorDrawable,但不知道如何使用它来设置我的按钮的.setBackgroundTintList()方法的背景色调.请注意,这是在片段中完成的,上下文存储在名为mContext的全局变量中.
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#FFFFFF"));
解决方法:
在API 21上
btn.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#buttonColor")));
或者Compat
Drawable drawable = new ColorDrawable(Color.parseColor("color"));
// Wrap the drawable so that future tinting calls work
// on pre-v21 devices. Always use the returned drawable.
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable,Color.parseColor("colorTint"));
//or tint list
//DrawableCompat.setTintList(drawable,ColorStateList.valueOf(Color.parseColor("#ffffff")));
btn.setBackground(drawable); //apply drwable with tint to the ctn
标签:android,android-button,colordrawable 来源: https://codeday.me/bug/20190828/1748541.html