java - java中改变布局背景颜色之间的差异

标签 java android android-layout

我是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/

相关文章:

java - Wicket:如何重定向到另一个页面?

android - 如何以编程方式在android中自动执行触摸

Android- Button 的 setWidth() 不起作用,如果 ViewGroup 的宽度在 xml 中为 'match_parent'/'fill_parent'?

android - 如何增加android中linearlayout中元素之间的空间?

android - 是否可以针对不同的产品口味使用不同的 build.gradle?

android - 恢复默认操作栏布局

java - 使用 Hibernate 从 Oracle DB 获取 500K+ 行

java - 使用客户端服务器模型防止 Java 游戏源代码的逆向工程

java - 在 BigDecimal 中设置 n 位小数并格式化数字 Java

android - Google Places API PlaceFilter