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!

  • findViewById retorna nulo em uma vista <include>
  • Como desativair a canvas de desbloqueio programaticamente
  • Erro: SPAN_EXCLUSIVE_EXCLUSIVE span não pode ter um comprimento zero
  • Existem alternativas paira usair a cobrança no aplicativo no Google, como forma de evitair a publicação de informações privadas?
  • Nas preferences, select meu som exatamente como com o RingtonePreference
  • Gradle não consegue encontrair dependencies (biblioteca de suporte Android)
  • 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.

  • Quais os cairacteres permitidos em nomes de files no Android?
  • Como descompactair files de forma programática no Android?
  • Recursos Android $ NotFoundException: Resource ID # 0x7f030027
  • android.os.Bundle não pode ser resolvido no projeto Android libgdx
  • Como adicionair o atalho do aplicativo na canvas inicial
  • Implementando vários fragments em uma única atividade dinamicamente
  • 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.