相对于另一个imageview定位imageview

时间:2017-02-03 14:06:26

标签: android xml imageview position watermark

我在向imageview右下方添加水印时遇到问题。

所以,想法是在另一个图像视图的底部添加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的右下角。

enter image description here

在这种情况下,我想在我正在编辑的imageview的右下角。

P.S。我也尝试以编程方式添加它,我认为这是“走的路”,但我不知道所有功能和可能性。

我试过像

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

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

2 个答案:

答案 0 :(得分:1)

您可以通过将FrameLayout替换为RelativeLayout来实现这一目标,height和父布局的width应为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>

答案 1 :(得分:0)

而不是FrameLayout尝试使用RelativeLayout,如:

    <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>
相关问题