为什么RelativeLayout.BELOW不起作用?

时间:2017-07-31 09:07:53

标签: android scale android-relativelayout

请帮帮我。我在RelativeLayout中有自定义ImageView。 ImageView只占用屏幕的一部分。我使用.setImageBitmap(输入)来设置图像并可以拖动ImageView。 当我使用setScaleX和setScaleY使图像biger然后屏幕时,我的图像爬上其他视图(updateButton和其他ImageView)。如何在其他视图下方设置它。

自定义ImageView参数:

<RelativeLayout 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_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.eleizo.firstapplication.MainActivity"
    android:id="@+id/topRL">

    <TextView
        android:id="@+id/info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="10dp"
        android:layout_marginBottom="10dp" />

    <ImageButton
        android:id="@+id/updateButton"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:scaleType="fitXY"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:src="@drawable/button_refresh_icon_72"
        android:background="@null" />


</RelativeLayout>

在屏幕的底部,我有按钮和TextView。我希望ImageView不会爬上它们。为什么params.addRule(RelativeLayout.BELOW,)不起作用?

我的.xml:

WebDriverWait wait = new WebDriverWait(driver, 40);
wait.until(ExpectedConditions.elementToBeClickable(btnUpdateProductGroup));
btnUpdateProductGroup.click();

2 个答案:

答案 0 :(得分:0)

您可以像这样使用addRule

params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
this.setScaleX(2);
this.setScaleY(2);
//params.addRule(RelativeLayout.BELOW, [id of the view below]);
params.addRule(RelativeLayout.BELOW, R.id.updateButton);
setLayoutParams(params);

答案 1 :(得分:0)

试试这个

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
this.setScaleX(1);
this.setScaleY(1);
params.addRule(RelativeLayout.BELOW, [id of the view below]);
layout.addView(tv1, params1);