2010-12-20 14 views
13

Bir 1x1 widget'ı oluşturuyorum ve ne denediğime bakmadan arka plan görüntüsünün güzel ve net görünmesini sağlayamıyorum. Bulduğum her türlü kaynağı okudum, yine de kazanamıyorum.1x1 Android widget'ı için net arka plan resmi nasıl oluşturulur?

HTC Desire/Nexus 1 için tasarım yapıyorum ve Photoshop'ta arka plan oluştururken bana hangi dpi/height/width (şu anda 72/100/80 kullanıyor) olduğunu söylerken söyleyecek birini seviyorum. İlk önce test cihazımda güzel görünmesini sağlayabildiğimde, diğer cihazlardaki çözünürlükler konusunda endişeleneceğim.

Ayrıca, özel bir şey varsa, @ layout/main.xml ve Widget_Provider.xml dosyalarına koymam gerekiyor. Ben sadece şu 1x1 Gadget'larda herhangi örneklerini bulabilir, böylece olamaz: Herhangi bir yardım büyük takdir

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/widget" 
android:layout_width="fill_parent" 
android:orientation="vertical" 
android:background="@drawable/background" 
android:layout_gravity="center" 
android:layout_height="wrap_content"> 

Widget_Provider.xml

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
android:minWidth="72dip" 
android:minHeight="72dip" 
android:updatePeriodMillis="6000000" 
android:initialLayout="@layout/main" 
/> 

main.xml.

cevap

18

Google'ın Supporting Multiple Screen Sizes belgesine bir göz atmak isteyebilirsiniz. Temel olarak burada olan şey, Android cihazlarındaki ekranların farklı piksel yoğunluklarına sahip olmasıdır. Bunlar düşük, orta, yüksek (ldpi, mdpi, hdpi) olarak kategorize edilir. Bir varlık daha büyük bir yoğunluk ekranı için yeterince büyük değilse, uygun boyuta kadar havaya uçurulur - bu muhtemelen size olan şeydir.

Nexus One, 250 civarında bir yere sahip olan ve bunu hdpi sınıfına yerleştiren bir DPI'ya sahiptir. 1x1 widget'ınızın dp değerini hesaplamak için google formülünü kullanarak (hücre sayısı * 74) - 2, widget boyutlarını 72x72 dp yapar.

piksele dp den dönüşüm: Bir 72x72 dp görüntü için Yani

pixels = dp * (density/160) 

, yoğunluğuna göre karşılık gelen görüntü boyutları olacaktır:

ldpi (120 DPI) = 72 * (120/160) == 54 x 54 pixels 
mdpi (160 DPI) = 72 * (160/160) == 72 x 72 pixels 
hdpi (240 DPI) = 72 * (240/160) == 108 x 108 pixels 
xhdpi (320 DPI) = 72 * (320/160) == 144 x 144 pixels 

varlıklarınızı oluşturmak için bu formülleri kullanın ve net görüntüler elde etmelisiniz.

+3

Açıklama için teşekkürler. Bazı nedenlerden dolayı Google dokümanları benim için batmadı. Denklemlerinizi aldım ve kolay bir şekilde yeniden kullanmak için hızlı bir webapp/hesap makinesi hazırladım: http://android.npike.net/widgetcalculator/ – NPike