ImageView,如何将图像设置在另一个图像的前面?

时间:2015-02-10 09:52:18

标签: java android imageview

我的图片有问题。如何将图像放在另一个图像的前面。 问题是我在代码中创建图像。所以我无法改变布局中的顺序。

3 个答案:

答案 0 :(得分:0)

您可以使用ImageView.bringToFront();,也许是最佳解决方案。

这里是Tutorial

如果您有任何问题,请告诉我。

答案 1 :(得分:0)

您可以使用RelativeLayout:

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布局:

<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>

答案 2 :(得分:0)

如果您是通过代码创建图像,则可以使用LayoutParams为第二个图像提供负leftMargin。

    RelativeLayout.LayoutParams imageParams = new  RelativeLayout.LayoutParams
            (RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
    imageParams.leftMargin = -20; // change this value 
    imageParams.addRule(RelativeLayout.RIGHT_OF,image1.getId());
    image2.setLayoutParams(imageParams);

这会强制第二张图像位于第一张图像的顶部。通过更改左边距,您可以决定第二张图像在第一张图像上移动多少。