我是android开发的新手。 我有两种方法通过 Java 更改布局背景颜色。哪一个更合适?为什么?
第一种方法是:
LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.translation_container);
layout.setBackgroundColor(mColor);
第二个:
View view = convertView.findViewById(R.id.translation_container);
int color = ContextCompat.getColor(getContext(),mColor);
view.setBackgroundColor(color);
最佳答案
好吧,两者之间有一些非常错误的地方,那就是您正在用一个直接调用 ContextCompat.getColor(getContext(), mColor)
并直接 setBackgroundColor( mColor)
另一个。
ContextCompat.getColor
应该用颜色资源 ID 来调用,即。一个R.color.value
。它从您的资源中返回与该资源 ID 相对应的颜色值。
根据“mColor”值的不同,这些选项之一很可能没有设置您期望的正确颜色。
如果mColor
是颜色资源ID,那么第二个是正确的。如果mColor
是您要设置的颜色,则第一个是正确的。
当您将其转换为LinearLayout
时,这是不必要的。两个选项都调用相同的方法 View.setBackgroundColor
。您现在可以使用 View
作为 View 变量的类型。
关于java - java中改变布局背景颜色之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47206698/