相对于另一个图像视图定位图像视图

Position imageview relative to another imageview

我无法在图像视图的右下角添加水印。

所以,我的想法是在另一个图像视图(我正在编辑的图像)的底部添加图像视图(水印)。

问题是,我尝试编辑的照片有不同的尺寸(垂直、水平、大、小)。

这是我的:

<RelativeLayout
android:id="@+id/relativelayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:mobfox="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:background="@color/colorPrimary"
    android:minHeight="?attr/actionBarSize">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:id="@+id/tb_buy"
        android:textSize="18sp"
        android:textStyle="bold"
        android:background="@null"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:textColor="@color/icons"
        android:text="BUY PRO"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:id="@+id/tb_save"
        android:textSize="18sp"
        android:textStyle="bold"
        android:background="@null"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:textColor="@color/icons"
        android:text="SAVE"/>

</android.support.v7.widget.Toolbar>


<FrameLayout
    android:id="@+id/framelayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/toolbar"
    android:layout_above="@+id/banner">

    <ImageView
        android:id="@+id/iv_photo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <!--<ImageView-->
        <!--android:id="@+id/iv_watermark"-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:layout_gravity="bottom|right"-->
        <!--android:alpha="0.7"-->
        <!--android:src="@drawable/watermark"/>-->

</FrameLayout>

<com.mobfox.sdk.bannerads.Banner
    android:layout_height="50dp"
    android:layout_width="320dp"
    android:id="@+id/banner"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true">
</com.mobfox.sdk.bannerads.Banner>

这会将水印图像视图放在 FrameLayout 的右下角。

在这种情况下,我希望它位于我正在编辑的图像视图的右下角。

P.S。我也尝试以编程方式添加它,我认为这是 'way to go' 方法,但我不知道所有功能以及可能的功能。

我试过

        //#### WATERMARK ####
    ImageView watermark = new ImageView(this);
    watermark.setImageResource(R.drawable.watermark);
    watermark.setBottom(editPhoto.getBottom());
    watermark.setRight(editPhoto.getRight());
    mLayout.addView(watermark);

但这不起作用。它只是在屏幕中央拉伸水印图像视图。

尝试使用 RelativeLayout 而不是 FrameLayout:

    <RelativeLayout
    android:id="@+id/rl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/toolbar"
    android:layout_above="@+id/banner">

    <ImageView
        android:id="@+id/iv_photo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjsutViewBounds="true"/>

    <ImageView
        android:id="@+id/iv_watermark"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:alpha="0.7"
        android:layout_alighRight="@id+/iv_photo"
        android:layout_alighBottom="@id+/iv_photo"
        android:src="@drawable/watermark"/>

</RelativeLayout>

您可以通过将 FrameLayout 替换为 RelativeLayout 来实现,父布局的 heightwidth 应该是 wrap_content

像这样:

<RelativeLayout
android:id="@+id/relativelayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:mobfox="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:background="@color/colorPrimary"
    android:minHeight="?attr/actionBarSize">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:id="@+id/tb_buy"
        android:textSize="18sp"
        android:textStyle="bold"
        android:background="@null"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:textColor="@color/icons"
        android:text="BUY PRO"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:id="@+id/tb_save"
        android:textSize="18sp"
        android:textStyle="bold"
        android:background="@null"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:textColor="@color/icons"
        android:text="SAVE"/>

</android.support.v7.widget.Toolbar>


<RelativeLayout
    android:id="@+id/framelayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/toolbar"
    android:layout_above="@+id/banner">

    <ImageView
        android:id="@+id/iv_photo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <ImageView
        android:id="@+id/iv_watermark"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alighRight="@id+/iv_photo"
        android:layout_alighBottom="@id+/iv_photo" 
        android:alpha="0.7"
        android:src="@drawable/watermark"/>

</RelativeLayout>

<com.mobfox.sdk.bannerads.Banner
    android:layout_height="50dp"
    android:layout_width="320dp"
    android:id="@+id/banner"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true">
</com.mobfox.sdk.bannerads.Banner>