Позиционирование двух ImageViews в относительной компоновке для всех плотностей - PullRequest
0 голосов
/ 13 сентября 2018

Итак, у меня есть RelativeLayout, где я поместил два ImageViews, один в качестве фонового изображения, а другой поверх него посередине, но немного ближе к низу (см. Рисунок ниже). У меня есть изображения для всех 6 типов плотности. Моя проблема в том, что если я перетащу его туда, где я хочу, чтобы он не выглядел одинаково для всех плотностей. enter image description here

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:scaleType="centerCrop"
    android:src="@drawable/background" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="87dp"
    android:scaleType="centerCrop"
    android:src="@drawable/img2" />
</RelativeLayout>

1 Ответ

0 голосов
/ 13 сентября 2018

Моя проблема в том, что если я перетащу его туда, куда я хочу, он не будет выглядеть одинаково для всех плотностей

Предполагая, что нужная позиция немного внизиз центра ..

Вы должны создать am XML в папке drawables .. скажем .. например.shape.xml

ниже приведен пример кода для него ..

res> drawables> shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<corners android:radius="12px"/> 
<stroke android:width="2dip" android:color="#000000"/>  
</shape>

Теперь в вашей деятельностиXML добавляет атрибут к вашему ImageView и задает фон и размер фигуры следующим образом:

<ImageView 
android:id="@+id/rect_image" 
android:layout_height="150dp"   // change as per your requirements
android:layout_width="250dp"   // change as per your requirements
android:background="@drawable/shape"    // important one
android:paddingTop="75dp"   // position the shape as per your requirements here
android:src="@drawable/shape">
</ImageView>

Теперь вы получите фигуру, как указано в файле shape.xml, для всех ваших плотностей экрана..

PS: измените атрибуты файла shape.xml в соответствии с вашими требованиями.

...