02 abr. 2016 14:54 de AndroidDev

Comparar recursos dentro de dos elementos extraíbles

Estoy tratando de comparar dos sorteos pero sin éxito. Investigué un poco, incluso hay una pregunta similar pero no ayudó.

En mi aplicación, usogetCompoundDrawablesWithIntrinsicBounds para obtener el ImageView en la posición correcta de un EditText. Luego necesito verificar qué recurso de imagen está alojado allí.

Esta pequeña muestra debería funcionar, ¿no? Sin embargo, devuelve "no igual".

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");
 }

questionAnswers (0)

02 abr. 2016 12:57 de 34k

getConstantState no funciona bien

Si haces esto:if(drawable1 == drawable2){

está comparando la referencia de los objetos y no es correcta ...

utilizar en su lugar es igual a lagetConstantState() método...

Actualizar Intentar comparar con bytes o píxeles es la única forma en que generalmente funciona.

 // Usage: 
 drawable1.bytesEqualTo(drawable2) 
 drawable1.pixelsEqualTo(drawable2) 
 bitmap1.bytesEqualTo(bitmap1) 
 bitmap1.pixelsEqualTo(bitmap2) 

https://gist.github.com/XinyueZ/3cca89416a1e443f914ed37f80ed59f2

yourAnswerToTheQuestion