【问题标题】:puting one imageView in front of the other in Android在 Android 中将一个 imageView 放在另一个之前
【发布时间】:2014-03-28 23:29:35
【问题描述】:

我有几个以编程方式创建的 imageView,所以这是我的问题,如果我想将一个 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);

【问题讨论】:

标签: java android android-imageview


【解决方案1】:

所以这就是最终帮助我的原因,我会把它说出来,以便对其他人有用。

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

就这样用吧

YourImageView.bringToFront();

在您创建了两张图片之后,您需要将一张放在上面。这适用于大多数视图。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 但是我从代码而不是布局创建我的 imageViews,这就是为什么我不能用 FrameLyout 做到这一点
    • 这可能吗?我不知道我可以在代码中使用 FrameLayout。对不起,我还是个初学者。但是我找到了一种通过代码轻松完成此操作的方法。我会把我的答案写在下面。
    • @MateKrižanac FrameLayout 只是 ViewGroup 的子类,所以当然可以。 :) 在“以编程方式定义 FrameLayout”标题下查看此链接:mobile.tutsplus.com/tutorials/android/android-sdk_frame-layout
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    相关资源
    最近更新 更多