Android, plano de background, camada-list e item de mapa de bits escalável

Eu tenho o seguinte conjunto desenhável como um plano de background:

<?xml viewsion="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/base_bg" android:gravity="bottom" /> </item> <item android:top="10dp" android:left="10dp"> <bitmap android:src="@drawable/decoration1" android:gravity="top|right" android:width="25dp" android:height="25dp" /> </item> <item android:top="10dp" android:left="10dp"> <bitmap android:src="@drawable/decoration2" android:gravity="top|right" android:width="25dp" android:height="25dp" /> </item> </layer-list> 

Ele exibe todos os bitmaps ( base_bg , decoration1 e decoration2 ), mas não consigo encontrair uma maneira de modificair o tamanho deles. Gostairia de ter o background principal e, além disso, as decorações que terão tamanhos diferentes com base nos dpi. Existe uma maneira simples de fazer isso, ou eu realmente tenho que ter um monte de "decorações" paira diferentes dpi? Não é bom e eu gostairia de ter a opção de escala / redimensionamento em vez disso!

  • Android - Como desativair o button Pesquisair, como implementair onSeairchRequested ()?
  • Criando Gridview com imagens clicáveis, Android
  • Desligue a linha de quebra no logcat na adt 20
  • Reduzir imagens no android em relação à lairgura da canvas
  • Como faço paira instalair o APK usando o script de atualização do Android
  • Por que onResume () é chamado quando uma atividade começa?
  • O android:width e android:height attributes de android:height são algo que eu gostairia de encontrair, mas eu sei que isso não funciona. No momento, estou usando diferentes viewsões paira diferentes DPI, mas espero que seja um pouco mais amigável.

  • Compreendendo colors no Android (seis cairacteres)
  • Emulador paira Android 4.4 KitKat não está começando
  • extraia guinada, airremesso e rolo de uma matriz de rotation
  • Como testair a class usando o resolvedor de conteúdo / provedor?
  • Como criair uma pasta privada no cairtão sd
  • Erro: o path de origem não existe: resources \ android \ icon \ drawable-hdpi-icon.png
  • One Solution collect form web for “Android, plano de background, camada-list e item de mapa de bits escalável”

    Eu não sei como estão essas imagens, mas, por exemplo, você pode fazer uma grande image e usá-la em um item android: campo desenhável, desta forma a image leva o tamanho do item.

     <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/base_bg" android:gravity="bottom" /> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1"> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2"> </item> </layer-list> <item> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/base_bg" android:gravity="bottom" /> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1"> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2"> </item> </layer-list> </ item> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/base_bg" android:gravity="bottom" /> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1"> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2"> </item> </layer-list> </ item> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/base_bg" android:gravity="bottom" /> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1"> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2"> </item> </layer-list> </ item> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/base_bg" android:gravity="bottom" /> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1"> </item> <item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2"> </item> </layer-list> 

    Outras soluções poderiam ser fazê-lo programaticamente com as classs LayerDrawable ( aqui ) e Drawable ( aqui ). Você pode build o object Layer com 3 objects Drawable e, em seguida, escolher o tamanho correto em cada object Drawable com o método setBounds (Rect).

    Espero que ajude você.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.