Создаю в коде ImageView и хочу чтобы при старте картинка отобразилась снизу экрана. С помощью метода setMargins я могу выставлять параметры left, top, right, bottom. Если выставить left и top, то картинка двигается. Но если я выставляю left и bottom - params.setMargins(20, 0, 0, 50), то срабатывает только значение для left, а bottom почему то игнорирует.
Вопрос:
1. Как правильно использовать параметр bottom чтобы он приминался ?
2. И за-за чего такое поведение, что на right и bottom нет реакции ?
P.S. Я понимаю что можно выставить значение top и картинка опуститься. Но на разных экранах может отображаться по разному. Я мне, условно, надо именно снизу отступ 50.
Вот сам код
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.RelLayout);
RelativeLayout.LayoutParams params =
new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.ic_launcher_foreground);
params.setMargins(20, 0, 0, 50);
imageView.setLayoutParams(params);
layout.addView(imageView);
}
}
Вот код из xml
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/RelLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/purple_200"
android:orientation="horizontal"/>