Почему 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);