Почему RelativeLayout.BELOW не работает?

Пожалуйста, помогите мне. У меня есть собственный ImageView в RelativeLayout. ImageView занимает только часть экрана. Я использую.setImageBitmap(вход), чтобы установить изображение и могу перетащить ImageView. Когда я использую setScaleX и setScaleY, чтобы изображение было больше, чем на экране, мое изображение поднимается на другие виды (updateButton и другие ImageView) . Как я могу установить его ниже других представлений.

Пользовательские параметры ImageView:

params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
this.setScaleX(2);
this.setScaleY(2);
params.addRule(RelativeLayout.BELOW,R.id.updateButton);
params.bottomMargin = updateButton.getLayoutParams().width*2;

В нижней части экрана у меня есть кнопка и TextView. Я хочу, чтобы ImageView не лез на них. Почему params.addRule(RelativeLayout.BELOW,) не работает?

Мой.xml:

<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>

2 ответа

Ты можешь использовать 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);

Попробуй это

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);
Другие вопросы по тегам