在Android中将一个imageView放在另一个前面

时间:2013-10-14 20:02:43

标签: java android android-imageview

我有几个以编程方式创建的imageViews,所以这里是我的问题,如果我想将一个imageView放在另一个上,我怎么能告诉我的应用程序哪个imageView将在顶部,以及哪一个在底部? 这就是我创建ImageViews的方法,并且工作正常。

        image = new ImageView(this);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);

    image.setScaleType(ImageView.ScaleType.MATRIX);
    image.setImageResource(R.drawable.ic_launcher);
    image.setId(1);
         params.setMargins(0, 0, 0, 0);
     Let's get the root layout and add our ImageView

    ((ViewGroup) mainLayout).addView(image, params);

2 个答案:

答案 0 :(得分:4)

所以这最终对我有所帮助,我会说它可能会对其他人有用。

您可以使用:http://developer.android.com/reference/android/view/View.html#bringToFront%28%29

只需像这样使用

YourImageView.bringToFront();

创建两个图像后,您需要将其放在顶部。这适用于大多数视图。

答案 1 :(得分:2)

如果你想在彼此之上绘制ImageViews,那么你应该使用FrameLayout。这是一个像堆栈一样绘制视图的布局,第一个孩子将被绘制,其他孩子将被绘制在前一个孩子之上。例如:

<FrameLayout
 android:layout_width="match_parent"
 android:layout_height="match_parent">
    <ImageView1 ... />
    <ImageView2 ... />
</FrameLayout>

如果您的布局是这样的,并且ImageView1和ImageView2重叠,那么ImageView2将被绘制在ImageView1上,因为它是第二个孩子并且是最后绘制的。