Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamic relative layout in android

I am trying to have two images on tp of each other. I can have it work fine with an xml file but I would like to do this dynamically. ctdeasyone is a transparent image.

So this works fine..

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageView 
        android:id="@+id/bck1" 
        android:src="@drawable/fish2"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"        
        android:scaleType="fitXY" 
        android:layout_gravity="center">
    </ImageView>

    <ImageView 
        android:id="@+id/bck2" 
        android:src="@drawable/ctdeasyone"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"        
        android:scaleType="fitXY" 
        android:layout_gravity="center">
    </ImageView>

</RelativeLayout>

When I do this. only the second image shows up (it is the transparent one.) Can any of the experts advice on this? Newbbie here... This is my first question. TIA.

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

        // Grabbing the Application context         
        final Context context = getApplication();                   

        RelativeLayout relativeLayout = new RelativeLayout(this);                   

        final ImageView iv = new ImageView(this);         
        iv.setImageResource(R.drawable.fish2);


        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(     
                RelativeLayout.LayoutParams.FILL_PARENT, 
                RelativeLayout.LayoutParams.FILL_PARENT);
        relativeLayout.addView(iv,lp);        

        // Creating transparent image
        final ImageView iv2 = new ImageView(this);
        iv.setImageResource(R.drawable.ctdeasytwo);
        RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(     
                RelativeLayout.LayoutParams.FILL_PARENT, 
                RelativeLayout.LayoutParams.FILL_PARENT);
        relativeLayout.addView(iv2,lp2);
        setContentView(relativeLayout);

    }        

}
like image 710
George Avatar asked Jun 05 '26 06:06

George


1 Answers

I had to put it in the emulator and play with it for a while until I saw it:

iv.setImageResource(R.drawable.fish2);
(...)
iv.setImageResource(R.drawable.ctdeasytwo);

You're never setting the image resource for iv2!

I changed that and now I see two images as expected.

like image 92
Aleadam Avatar answered Jun 07 '26 18:06

Aleadam