我试过这个密码:
LinearLayout someLayout=(LinearLayout)view.findViewById(R.id.someLayout);
someLayout.setBackgroundTintList(context.getResources().getColorStateList(Color.parseColor("#ff8800")));
但我有个错误:
android.content.res.Resources$NotFoundException
我从外部源获取颜色十六进制,因此无法将其嵌入colors.xml中。
另外我想改变色调,而不是背景,所以退步不是一个选择。
最佳答案
我想我不能使用getColorStateList(),所以我寻找了另一种方法。
最后,我可以使用以下代码设置颜色色调:
LinearLayout someLayout=(LinearLayout)view.findViewById(R.id.someLayout);
someLayout.getBackground().setColorFilter(Color.parseColor("#ff8800"), PorterDuff.Mode.SRC_ATOP);
这就好像我更改了xml文件中的backgroundtint属性一样,所以它非常适合我的问题。