6

i am creating an application in which i want set different background images in main xml linearlayout.I have stored 5 image files on sd card .now i want to select a pic and set it as my maim xml linearlayout background.so it will replace the previous image and display the new image as background.

Sourav
  • 607
  • 8
  • 9

1 Answers1

17

First assign an id to the main xml linearlayout, for example in the following case it is named" container"

    <!-- main.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/container">
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
</LinearLayout>

Then in the .java code you can find the layout object and set a drawable as its background:

package org.example.app;

import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        String pathName = "/sdcard/gif001.gif";
        Resources res = getResources();
        Bitmap bitmap = BitmapFactory.decodeFile(pathName);
        BitmapDrawable bd = new BitmapDrawable(res, bitmap);
        View view = findViewById(R.id.container);
        view.setBackgroundDrawable(bd);
    }
}

Regards

Ziteng Chen

Ziteng Chen
  • 1,959
  • 13
  • 13
  • Thanks for the code,its working perfectly.But,if i am trying to use the code on splash screen its not coming. can you suggest me what changes are needed .i want to load an image from sdcard on the splash screen when my application is starting. – Sourav Jun 10 '11 at 18:18
  • The code helped me.. I was able to set the background image of the layout and even the splash screen image from the images on the external storage – Mahendra Liya Jul 25 '12 at 09:36