2010-05-30 32 views
7

Kaynak resmimi orijinal boyutunda görüntülemek için ImageView'umu alıyorum. ImageView şuna benzer:Android: ImageView, kaynak görüntüyü ölçeklendirir

<ImageView 
android:id="@+id/Logo" 
android:src="@drawable/logo" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
> 
</ImageView> 

kaynak resim 140 piksel genişliğinde, henüz genişliğinin yarısı kadar kullanır 480 piksel genişliğinde Nexus One'ın ekranında, üzerinde. Genişlik ve yükseklik için px veya dp'de mutlak değerler kullanmak hiçbir şeyi değiştirmez. Görüntü, aynı zamanda yükselmeden çok antialiased görünüyor. Bu neden oluyor ve nasıl önleyebilirim?

cevap

7

Büyük olasılıkla, Android görüntüyü büyütüyor, çünkü büyük ekranları desteklediğini söylemediniz. Bildirinize bir suitable <supports-screens> element ekleyin ve bunun işe yarayıp yaramadığını görün.

+0

Önerinizi denedim ve kesinlikle bununla ilgili bir şey var. Çok teşekkür ederim! Görüntünün boyutlarını layout_width ve layout_height için mutlak piksel değerleri olarak kullanırsam, görüntünün "doğru" boyutuna sahip olması. Eğer wrap_content kullanırsam, görüntü hala eskisi kadar büyüktür, göründüğü gibi, görüntünün boyutlarını boyut olarak "dp" ile kullandığım zamankiyle aynı boyuttadır. Sanırım bu sadece wrap_content'in nasıl çalıştığını gösteriyor. Bu durumda, görüntünün Nexus gibi yüksek yoğunluklu bir ekrana sahip bir cihazda çok büyük görüntülenmesi mantıklı olacaktır. –

+0

Hala garip olan şey, layout_width ve layout_height için wrap_content kullanıyorum, ancak hiçbir etkisi olmayan maxWidth ve maxHeight için mutlak piksel değerlerini kullanıyorum. Piksel boyutlarının kullanımı yine de cesaret kırıldığından, görüntüyü yükseltmek için başka yolların olup olmadığını merak ediyorum. –

+1

Muhtemelen görüntünüzün iki versiyonunu, bir tanesi orta yoğunluklu ekranlar ve bir tanesi yüksek yoğunluklu ekranlar için isteyebilirsiniz. Resminizi res/drawable-hdpi/'içine koymaya çalışın ve bunun işe yarayıp yaramadığını görün. – CommonsWare

İlgili konular