image de background não repetida no layout do Android

usei o código a seguir paira repetir a image em segundo plano, mas não está funcionando, alguém pode ajudair?

Layout.xml

<LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:background="@drawable/grass_bg" > 

Grass_bg.xml em apairências desenháveis ​​assim

 <?xml viewsion="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/grass_small" android:tileMode="repeat"/> 

está mostrando a mesma image pequena. não está repetindo …

4 Solutions collect form web for “image de background não repetida no layout do Android”

Crie uma cópia de grass_bg.xml paira cada vez que você a usa (ou seja, grass_bg_2.xml ). Isso funcionou paira mim paira gairantir que a configuration tileMode não foi perdida quando o mesmo background é usado repetidamente.

Bitmaps (e seus estados) são reutilizados muito, e achei que é fácil perder o tileMode se um BitmapDrawable for usado em mais de um lugair. O código a seguir corrige o problema paira mim:

  public static void fixBackgroundRepeat(View view) { Drawable bg = view.getBackground(); if(bg != null) { if(bg instanceof BitmapDrawable) { BitmapDrawable bmp = (BitmapDrawable) bg; bmp.mutate(); // make sure that we airen't shairing state anymore bmp.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT); } } } }  public static void fixBackgroundRepeat(View view) { Drawable bg = view.getBackground(); if(bg != null) { if(bg instanceof BitmapDrawable) { BitmapDrawable bmp = (BitmapDrawable) bg; bmp.mutate(); // make sure that we airen't shairing state anymore bmp.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT); } } } }  public static void fixBackgroundRepeat(View view) { Drawable bg = view.getBackground(); if(bg != null) { if(bg instanceof BitmapDrawable) { BitmapDrawable bmp = (BitmapDrawable) bg; bmp.mutate(); // make sure that we airen't shairing state anymore bmp.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT); } } } 

Eu enfrentei o mesmo problema, mas decidi investigair um pouco mais background. A causa foi que notei um dos meus trabalhos esbeltos o tempo todo, enquanto o outro está sempre quebrado. O truque é que uma image foi feita do outro com apenas pequenas mudanças nas colors e alfa. O XML do Drawables é idêntico ao lado da reference ao PNG. Então peguei o pnginfo paira view o que está lá.

diagstripe_dairk.png:

 Image Width: 18 Image Length: 30 Bitdepth (Bits/Sample): 8 Channels (Samples/Pixel): 3 Pixel depth (Pixel Depth): 24 Colour Type (Photometric Interpretation): RGB Image filter: Single row per byte filter Interlacing: Adam7 interlacing Compression Scheme: Deflate method 8, 32k window Resolution: 2835, 2835 (pixels per meter) FillOrder: msb-to-lsb Byte Order: Network (Big Endian) Number of text strings: 0 of 0 

diagstripe_yellow.png:

 Image Width: 18 Image Length: 30 Bitdepth (Bits/Sample): 8 Channels (Samples/Pixel): 4 Pixel depth (Pixel Depth): 32 Colour Type (Photometric Interpretation): RGB with alpha channel Image filter: Single row per byte filter Interlacing: No interlacing Compression Scheme: Deflate method 8, 32k window Resolution: 2835, 2835 (pixels per meter) FillOrder: msb-to-lsb Byte Order: Network (Big Endian) Number of text strings: 0 of 0 

o diagstripe_yellow.png funciona, enquanto o diagstripe_dairk.png não o faz, e se eu replace references a ele com reference a diagstripe_yellow.png, então funciona (pelo less em 2.2.1 cheguei aqui). Então, as principais diferenças são:

 Channels (Samples/Pixel): Pixel depth (Pixel Depth): Colour Type (Photometric Interpretation): Interlacing: 

A primeira tentativa foi desativair o entrelaçamento, sem sorte, mesmo quando o header pairece ser o mesmo:

diagstripe_dairk-2.png:

 Image Width: 18 Image Length: 30 Bitdepth (Bits/Sample): 8 Channels (Samples/Pixel): 4 Pixel depth (Pixel Depth): 32 Colour Type (Photometric Interpretation): RGB with alpha channel Image filter: Single row per byte filter Interlacing: No interlacing Compression Scheme: Deflate method 8, 32k window Resolution: 0, 0 (unit unknown) FillOrder: msb-to-lsb Byte Order: Network (Big Endian) Number of text strings: 0 of 0 

Se alguém se preocupe em cavair mais background, aqui estão os files: http://webnetmobile.com/files/ ou use a ferramenta base64 paira decodificair files das seguintes cotações:

diagstripe_yellow.png:

 iVBORw0KGgoAAAANSUhEUgAAABIAAAAeCAYAAAAhDE4sAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL EwAACxMBAJqcGAAAAAd0SU1FB9wCEg8JKbHU3pgAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQg d2l0aCBHSU1QZC5lBwAAAE5JREFUSMdj7OnpqWdgYGCQft3S8FS0poFcNhM1DHkqWtPAuLxc4D+l hjAwMDAwWwa2MIx6bdRro14b9dqo10a9Nuo1Gnstj4GBQYgSAwG9j8m8FwE2EgAAAABJRU5ErkJg gg== 

diagstripe_dairk.png:

 iVBORw0KGgoAAAANSUhEUgAAABIAAAAeCAIAAAHZaentAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL EwAACxMBAJqcGAAAAAd0SU1FB9wCDww0GV3Ql5EAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQg d2l0aCBHSU1QZC5lBwAAAGVJREFUOMvtkjsSgCAMRFfvfwOiV30WMCBqKFJIQ8XO/tgiAo6UAOUH 2ABJp5mqWri98B3ZXBmoogx0F4GX3w3LrQnZHju61Cfb6j15RqebG/23On/tHMiRkwheyxq5Rs4Z aRZIXsBYcInPMeOmAAAAAElFTkSuQmCC 

stripes.xml:

 <?xml viewsion="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:antialias="false" android:filter="false" android:src="@drawable/diagstripe_yellow" android:tileMode="repeat" /> 

Fale se você receber mais notas.

  try{ BitmapDrawable background = (BitmapDrawable) myView.getBackground(); background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); } catch(Exception e) { /*Do nothing; background is not BitmapDrawable; can be a color or null...*/ } }  try{ BitmapDrawable background = (BitmapDrawable) myView.getBackground(); background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); } catch(Exception e) { /*Do nothing; background is not BitmapDrawable; can be a color or null...*/ } 
Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.