我需要比较两个PorterDuffColorFilter对象以检查 a在Espresso 测试ProgressBar
中是否显示正确的颜色
我曾尝试直接比较这两个对象,但以下方法总是返回false
:
// Creating a PorterDuffColorFilter Object
weakOrNonePasswordColorFilter =
new PorterDuffColorFilter(ContextCompat.getColor(mActivityRule.getActivity(), R.color.red), PorterDuff.Mode.SRC_IN);
...
// Retrieving the ProgressBar ColorFilter and compare
public boolean matchesSafely(ProgressBar progressBar, PorterDuffColorFilter colorFilter) {
LayerDrawable drawable = (LayerDrawable) progressBar.getProgressDrawable();
Drawable progressDrawable = drawable.getDrawable(1);
progressDrawable.setColorFilter(colorFilter);
return ((PorterDuffColorFilter)progressDrawable.getColorFilter()).equals(colorFilter);
}
往里面看PorterDuffColorFilter
有一个
public int getColor() {
return mColor;
}
应该解决我的问题的方法。但是,我无法访问此方法。Android Studio 仅显示“对象”方法,如果我尝试使用 . getColor()
将显示一条错误消息,指出找不到该方法。
出现这个问题是因为这个类在android.graphics
包中,使其无法访问吗?
如果是这样,我如何检索ProgressBar
条形的颜色并将其与颜色进行比较?