2016-04-02 11 views
0

Ich versuche, zwei Zeichen zu vergleichen, aber ohne Erfolg. Ich habe etwas recherchiert, es gibt sogar eine ähnliche Frage, aber hat nicht geholfen.Vergleichen von Ressourcen innerhalb von zwei Zeichen

In meiner App verwende ich getCompoundDrawablesWithIntrinsicBounds, um das ImageView in der richtigen Position eines EditText zu erhalten. Dann muss ich überprüfen, welche Bildressource dort zugeordnet ist.

Diese kleine Probe sollte funktionieren, oder? Es gibt jedoch "nicht gleich" zurück.

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

Sie bewerben sich diese Drawables auf einem Image? –

+0

http://stackoverflow.com/questions/9125229/comparting-tow-drawables-in-android – sasikumar

Antwort

3

getConstantState nicht gut

Wenn Sie dies tun: if(drawable1 == drawable2){

Sie die Referenz der Objekte und es nicht richtig vergleichen ...

Verwenden Sie stattdessen gleich mit der getConstantState() Methode ...

Update Versuchen Sie, mit Bytes oder Pixel zu vergleichen, ist die einzige Möglichkeit, die im Allgemeinen funktioniert.

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

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

+1

Ich werde das versuchen, auch wenn ich nicht mit dieser Methode vertraut bin. Was genau macht es? – AndroidDev