我试过这段代码:
LinearLayout someLayout=(LinearLayout)view.findViewById(R.id.someLayout);
someLayout.setBackgroundTintList(context.getResources().getColorStateList(Color.parseColor("#ff8800")));
但我收到一个错误:android.content.res.Resources$NotFoundException
我从外部源获取十六进制颜色,因此无法将其嵌入 colors.xml 中。
另外我想改变色调,而不是背景,所以 setBackground 不是一个选项。
最佳答案
我想我不能使用 getColorStateList() 所以我搜索了另一种方法来做到这一点。 最后,我能够使用以下代码设置色调:
LinearLayout someLayout=(LinearLayout)view.findViewById(R.id.someLayout);
someLayout.getBackground().setColorFilter(Color.parseColor("#ff8800"), PorterDuff.Mode.SRC_ATOP);
这就像我更改了 xml 文件中的 backgroundTint 属性一样,所以它非常适合我的问题。
关于android - 如何以编程方式从字符串设置布局背景色调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47837460/