Comment faire pour répéter l’image d’arrière-plan d’une application

J’ai défini une image d’arrière-plan dans mon application, mais l’image d’arrière-plan est petite et je souhaite qu’elle soit répétée et remplisse tout l’écran. Que devrais-je faire?

 

Ok, voici ce que j’ai dans mon application. Il inclut un hack pour empêcher les ListView de devenir noires pendant le défilement.

drawable / app_background.xml :

   

values ​​/ styles.xml :

       

AndroidManifest.xml :

 //  // 

Il existe une propriété dans le fichier XML pouvant être dessiné pour le faire. android: tileMode = “repeter”

Voir ce site: http://androidforbeginners.blogspot.com/2010/06/how-to-tile-background-image-in-android.html

Voici une implémentation pure-Java de l’image d’arrière-plan répétant:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.bg_image); BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); bitmapDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); LinearLayout layout = new LinearLayout(this); layout.setBackgroundDrawable(bitmapDrawable); } 

Dans ce cas, notre image de fond devrait être stockée dans res / drawable / bg_image.png.

En développant la réponse de plowman, voici la version non obsolète de la modification de l’image d’arrière-plan avec Java.

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.texture); BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(),bmp); bitmapDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); setBackground(bitmapDrawable); } 
 // Prepared By Muhammad Mubashir. // 26, August, 2011. // Chnage Back Ground Image of Activity. package com.ChangeBg_01; import com.ChangeBg_01.R; import android.R.color; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.ImageView; import android.widget.TextView; public class ChangeBg_01Activity extends Activity { TextView tv; int[] arr = new int[2]; int i=0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView)findViewById(R.id.tv); arr[0] = R.drawable.icon1; arr[1] = R.drawable.icon; // Load a background for the current screen from a drawable resource //getWindow().setBackgroundDrawableResource(R.drawable.icon1) ; final Handler handler=new Handler(); final Runnable r = new Runnable() { public void run() { //tv.append("Hello World"); if(i== 2){ i=0; } getWindow().setBackgroundDrawableResource(arr[i]); handler.postDelayed(this, 1000); i++; } }; handler.postDelayed(r, 1000); Thread thread = new Thread() { @Override public void run() { try { while(true) { if(i== 2){ //finish(); i=0; } sleep(1000); handler.post(r); //i++; } } catch (InterruptedException e) { e.printStackTrace(); } } }; } } /*android:background="#FFFFFF"*/ /* ImageView imageView = (ImageView) findViewById(R.layout.main); imageView.setImageResource(R.drawable.icon);*/ // Now get a handle to any View contained // within the main layout you are using /* View someView = (View)findViewById(R.layout.main); // Find the root view View root = someView.getRootView();*/ // Set the color /*root.setBackgroundColor(color.darker_gray);*/