Сравнение ресурсов в двух чертежах
Я пытаюсь сравнить два рисунка, но безуспешно. Я провел некоторое исследование, есть даже похожий вопрос, но он не помог.
В моем приложении я использую getCompoundDrawablesWithIntrinsicBounds
чтобы получить ImageView в правильном положении EditText. Затем мне нужно проверить, какой ресурс изображения находится там.
Этот маленький образец должен работать, не так ли? Он возвращает "не равно", хотя.
Drawable drawable1 = ContextCompat.getDrawable(getApplicationContext(),R.drawable.cor);
Drawable drawable2 = ContextCompat.getDrawable(getApplicationContext(),R.drawable.cor);
if(drawable1 == drawable2){
System.out.println("equal");
}else{
System.out.println("not equal");
}
1 ответ
getConstantState не работает хорошо
Если вы делаете это:if(drawable1 == drawable2){
Вы сравниваете ссылку на объекты, и это не правильно...
использовать вместо равных с getConstantState()
метод...
Обновление Попытайтесь сравнить с байтами или пикселями - это единственный способ, который обычно работает.
// Usage:
drawable1.bytesEqualTo(drawable2)
drawable1.pixelsEqualTo(drawable2)
bitmap1.bytesEqualTo(bitmap1)
bitmap1.pixelsEqualTo(bitmap2)
https://gist.github.com/XinyueZ/3cca89416a1e443f914ed37f80ed59f2