在我的测试中,我想确保View(不是ImageView)具有某种背景颜色。如何通过与相关视图进行交互来直接执行此操作?
此视图的背景不是Drawable。它是在XML中设置的,或者是使用view.setBackgroundColor(...)
设置的。
答案 0 :(得分:1)
它需要你重构一下,但是你可以使用setBackgroundDrawable()并传入ColorDrawable的实例,而不是使用setBackgroundColor()。它实际上不再是你的工作方式,ColorDrawable可以让你设置它的颜色,并在你执行测试时稍后再使用它。所有View对象都响应getBackground()方法,该方法返回该实例的Drawable。
这应该适合你,它并没有真正增加任何开销,因为即使你调用setBackgroundColor,Android也需要为你创建一个Drawable
答案 1 :(得分:1)
ColorDrawable有一个getColor()方法,返回表示其颜色的int值。创建ColorDrawable对象时,您可以调用setColor()来设置背景颜色。现在,您可以比较两个int颜色值,看它们是否相等。您需要将其转换为ColorDrawable,而不是Drawable接口
ColorDrawable drawable =(ColorDrawable)view.getBackground();
答案 2 :(得分:1)
您可以使用它来获取textview的背景颜色..
<强> yourTextView.getBackgroundResource(R.color.white); 强>
其中color.xml在res / values文件夹中定义为
<color name="white">#ffffffff</color>