Сравнение ресурсов в двух чертежах

Я пытаюсь сравнить два рисунка, но безуспешно. Я провел некоторое исследование, есть даже похожий вопрос, но он не помог.

В моем приложении я использую 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

Другие вопросы по тегам