2016-04-02 25 views
0

İki çekmeceyi karşılaştırıp başarılı bir şekilde karşılaştırmaya çalışıyorum. Biraz araştırma yaptım, hatta benzer bir soru var ama yardım etmedi.Kaynakları iki birlikte kullanılabilir hale getirme

Uygulamamda, ImageView'ı bir EditText'in sağ konumuna getirmek için getCompoundDrawablesWithIntrinsicBounds kullanın. O zaman orada hangi görüntü kaynağının bulunduğunu kontrol etmem gerekiyor.

Bu küçük örnek çalışmalı, değil mi? Yine de "eşit değil" döndürür.

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

Bir ImageView bu drawables başvuruyorsunuz? –

+0

http://stackoverflow.com/questions/9125229/comparing-two-drawables-in-android – sasikumar

cevap

3

getConstantState çalışmıyor iyi

Bunu yaparsanız: if(drawable1 == drawable2){

Eğer nesnelerin başvuru karşılaştıran ve doğru değil ...

bunun yerine getConstantState() yöntemiyle eşittir ...

Güncelleştirme Genel olarak çalışmanın tek yolu bayt veya pikselle karşılaştırmayı deneyin.

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

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

+1

Bu yönteme aşina olmamam da bunu deneyeceğim. Tam olarak ne yapıyor? – AndroidDev

İlgili konular