Como criar uma imagem de fundo nítido para 1x1 Widget Android?

votos
13

Estou criando um um widget 1x1, e não importa o que eu tente, eu simplesmente não consegue obter a imagem de fundo olhando agradável e nítido. Eu li apenas sobre qualquer recurso que eu posso encontrar, mas eu ainda não pode vencer.

Eu estou projetando para o HTC Desire / Nexus 1, e gostaria que alguém me dissesse ao criar o fundo no Photoshop, o que dpi / altura / largura de usar (atualmente usando 72/100/80). Eu vou preocupar com outras resoluções dispositivos uma vez que pode obtê-lo olhando agradável no meu dispositivo de teste primeiro.

Além disso, se há alguma coisa especial eu preciso estar colocando no layout @ / main.xml e arquivos Widget_Provider.xml. Eu simplesmente não consigo encontrar qualquer exemplos para dispositivos 1x1, de modo a ter a seguinte:

main.xml

<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
/>

Qualquer ajuda seria muito apreciada.

Publicado 20/12/2010 em 13:23
fonte usuário
Em outras línguas...                            


1 respostas

votos
18

Você pode querer ter um olhar para o Google tamanhos de tela múltiplas de apoio documento. Basicamente o que está acontecendo aqui é que as telas em dispositivos Android têm diferentes densidades de pixel. Estes são categorizados como baixa, média, alta (ldpi, mdpi, hdpi). Se um activo não é grande o suficiente para uma tela maior densidade, é ampliada para o tamanho adequado - este é provavelmente o que está acontecendo com você.

O Nexus One tem um DPI algo em torno de 250 o que o coloca na classe hdpi. Usando a fórmula google de (número de células * 74) - 2 para calcular dp para seu widget 1x1 faria as dimensões do elemento gráfico 72x72 dp.

A conversão de dp de pixels é:

pixels = dp * (density / 160)

Assim, para uma imagem de 72x72 dp, os tamanhos de imagem correspondentes com base na densidade seria:

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

Use estas fórmulas para criar seus ativos e você deve obter imagens nítidas.

Respondeu 29/12/2010 em 20:59
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more