如何将图像放在另一个图像视图中

Posted

技术标签:

【中文标题】如何将图像放在另一个图像视图中【英文标题】:How to Put image inside another image view 【发布时间】:2020-06-11 06:56:46 【问题描述】:

我想将贴纸视图完全放在图像视图内(它不应该超出图像边界)

图像视图由用户上传,因此它不能是固定尺寸。如果需要,我可以调整贴纸尺寸当前贴纸尺寸 (540x670)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical">
    <RelativeLayout
      android:layout_
      android:layout_
      android:layout_weight="1">

      <RelativeLayout
        android:id="@+id/relativemain"
        android:layout_
        android:layout_
        android:layout_centerInParent="true"
        android:gravity="center">

        <ProgressBar
            android:id="@+id/progressBar"
            style="?android:attr/progressBarStyleLarge"
            android:layout_
            android:layout_
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical"
            android:indeterminateDrawable="@drawable/progress"
            android:visibility="gone" />

        <ImageView
            android:id="@+id/ic_img"
            android:layout_
            android:layout_
            android:background="@color/blue_900"
            android:layout_centerInParent="true"
            />

        <com.A.B.C.StickerView.StickerView
            android:id="@+id/stickerView"
            android:layout_
            android:layout_
            android:layout_centerInParent="true"
            android:layout_gravity="center"
            android:visibility="visible" />
    </RelativeLayout>
</RelativeLayout>

【问题讨论】:

我不确定我是否完全遵循。哪个图像需要遍历哪个图像?无论如何,基本的想法是使用 FrameLayout 来包装 ImageView,然后在其中添加第二个。 灰色图像(贴纸视图)应在图像视图(海图)中可见。图像中标记的白色部分应不可见。 是的,好吧,现在更清楚了。只需创建一个像 FrameLayout 这样的容器布局,该布局将与图像 (wrap_content) 的大小完全相同,然后在其中添加 StickerView 哪个布局应该替换为 FrameLayout(相对或线性) 它成功了,谢谢(请将其作为答案发布,以便我接受) 【参考方案1】:

由于我的评论帮助解决了问题,所以我将在答案中发布。

只需创建一个像 FrameLayout 这样的容器布局,该布局将与图像 (wrap_content) 的大小完全相同,然后在其中添加 StickerView

类似这样的:

<FrameLayout
      android:layout_
      android:layout_>
    <ImageView
        android:id="@+id/ic_img"
        android:layout_
        android:layout_
        android:background="@color/blue_900"
        android:layout_centerInParent="true"
        />

    <com.A.B.C.StickerView.StickerView
        android:id="@+id/stickerView"
        android:layout_
        android:layout_
        android:layout_centerInParent="true"
        android:layout_gravity="center"
        android:visibility="visible" />
</FrameLayout>

【讨论】:

【参考方案2】:

尝试使用约束布局,并将贴纸的约束设置到图像视图的内部。

【讨论】:

以上是关于如何将图像放在另一个图像视图中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 react-native 将图像放在相机视图的顶部

如何在 tableview 中为图像设置动画以同时扩展和打开另一个视图控制器?

如何将部分透明的图像放在 html 中的另一个图像上方?

将图像放在另一个 png/svg 文件中

如何将一个滚动视图图像选择到另一个滚动视图中?

使用 HTML 将图像放在另一个图像之上?