我试过这个密码:

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属性一样,所以它非常适合我的问题。

07-24 09:24