web-dev-qa-db-fra.com

Android: Définition de l'image d'arrière-plan pour RelativeLayout?

J'ai téléchargé une image au moment de l'exécution. Maintenant, je veux le définir comme arrière-plan pour RelativeLayout. Est-ce possible?

15
Vivek

Consultez le setBackgroundDrawable , ou peut-être createFromPath dans la classe Drawable.

   RelativeLayout rLayout = (RelativeLayout) findViewById (R.id.rLayout);
   Resources res = getResources(); //resource handle
   Drawable drawable = res.getDrawable(R.drawable.newImage); //new Image that was added to the res folder

    rLayout.setBackground(drawable);
22
SteD

Utilisez plutôt:

View lay = (View) findViewById(R.id.rLayout);
lay.setBackgroundResource(R.drawable.newImage);

Cela fonctionne parce que R.drawable.newImage fait référence à un entier. Alors tu pourrais faire:

int pic = R.drawable.newImage;
lay.setBackgroundResource(pic);
4
Melvin Miller

Essayez ceci pour Xamarin.Android (Cross Platform) -

RelativeLayout relativeLayout = new RelativeLayout (this);

OR

RelativeLayout relativeLayout = (RelativeLayout)FindViewById (Resource.Id.relativeLayout);

ET

relativeLayout.SetBackgroundDrawable (Resources.GetDrawable (Resource.Drawable.imageName));
2
Nitin V. Patil

Dans la fonction onCreate:

RelativeLayout baseLayout = (RelativeLayout) this.findViewById(R.id.the_layout_id);

Drawable drawable = loadImageFromAsset();

if(drawable != null){
    baseLayout.setBackground(drawable);
    Log.d("TheActivity", "Setting the background");
}

La méthode de chargement d'image:

public Drawable loadImageFromAsset() {

    Drawable drawable;

    // load image
    try {

        // get input stream
        InputStream ims = getAssets().open("images/test.9.png");

        //Note: Images can be in hierarical 

        // load image as Drawable
        drawable = Drawable.createFromStream(ims, null);

    }
    catch(IOException ex) {
        Log.d("LoadingImage", "Error reading the image");
        return null;
    }

    return drawable;
}

La méthode ouverte:

> public final InputStream open (String fileName, int accessMode)
> 
> Added in API level 1 Open an asset using an explicit access mode,
> returning an InputStream to read its contents. This provides access to
> files that have been bundled with an application as assets -- that is,
> files placed in to the "assets" directory.
> 
> fileName --- The name of the asset to open. This name can be hierarchical.
> 
> accessMode --- Desired access mode for retrieving the data.
> 
> Throws IOException
0
The Demz