2011-08-07 8 views
4

comment je peux mettre IM2 au bon endroitcomment placer une image sur un autre sur l'application android?

FrameLayout rv =(FrameLayout)findViewById(R.id.my_ph); 


    ImageView im1 = new ImageView(this); 
    im1.setBackgroundResource(R.drawable.lamp_on); 
    im1.layout(100, 100,120, 120); 

    rv.addView(im1); 

ma mise en page

<FrameLayout android:id="@+id/my_ph" xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
<ImageView 
android:id="@+id/image" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/sketch" /> 
</FrameLayout> 

je veux que IM1 sera au-dessus de la ImageView en position x, y

Répondre

2

et la réponse ....

RelativeLayout rv = (RelativeLayout) findViewById(R.id.my_ph); 
RelativeLayout.LayoutParams params; 
ImageButton im1 = new ImageButton(this); 

im1.setBackgroundResource(R.drawable.lamp); 
im1.setId(i); 
im1.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     TextView tx = (TextView) findViewById(R.id.textView1); 
     tx.setText("lamp #" + v.getId()); 
    } 
}); 

params = new RelativeLayout.LayoutParams(40, 40); 
params.leftMargin = x; 
params.topMargin = y; 
rv.addView(im1, params); 

XML Mise en page:

<RelativeLayout 
      android:id="@+id/my_ph" 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="bottom"> 
    <ImageView 
      android:id="@+id/image" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:background="@drawable/map" /> 
    <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:layout_below="@+id/image" 
      android:layout_alignParentLeft="true"> 
    </TextView> 

</RelativeLayout> 
10

Dans Disp ajouter un autre ImageView et aligner Top, Bottom, Right, Left au premier. Rends-le invisible.

<FrameLayout android:id="@+id/my_ph"  
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
<ImageView 
    android:id="@+id/image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/sketch" android:layout_alignParentTop="true"/> 
<ImageView 
    android:id="@+id/image2" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_paren" 
    android:layout_alignTop="@id/image" 
    android:layout_alignLeft="@id/image" 
    android:layout_alignRight="@id/image" 
    android:layout_alignBottomp="@id/image" 
    android:visibility="INVISIBLE"/> 
</FrameLayout> 

Puis dans le code:

ImageView image2 =(ImageView)findViewById(R.id.image2); 
image2.setVisibility(View.VISIBLE); 
image2.setImageResource(R.drawable.my_image); 
1

Au lieu d'utiliser android: src dans le imageView xml utiliser android: fond puis juste le recevoir au fichier java source puis utilisez le code suivant :

ImageView img=(ImageView)findViewById(R.id.image); 
img.setBackgroundDrawable(getResource().getDrawable(R.drawable.lamp_on)); 

Espérons que cela fonctionnera pour vous.

+0

la question concerne l'emplacement (x, y) de la seconde image – eyalb

0

Utilisez ce faire ce xml dans votre dossier drawble, vous pouvez ajouter d'autres images à lui de la même manière. ils vont tous apparaître les uns sur les autres.

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<item> 
    <bitmap android:src="@drawable/img1" 
     android:gravity="center" 
     /> 
</item> 
<item> 
    <bitmap android:src="@drawable/img2" 
     android:gravity="center" 
     /> 
</item> 
</layer-list> 
Questions connexes