Android: получить LinearLayout поверх ImageView

Я хочу, чтобы ImageView покрыл левую половину экрана, сохраняя при этом соотношение сторон и LinearLayout в одном положении с одинаковой шириной и высотой. Кто-нибудь может сказать мне, как этого добиться?

используйте FrameLayout в качестве родительского макета.

Deepak Goyal 27.11.2018 23:27

Вы можете уточнить, пожалуйста?

Ginso 27.11.2018 23:35

Можете ли вы поделиться дизайном экрана

Chetan Joshi 28.11.2018 06:31
0
3
111
2

Ответы 2

Я бы начал с примерно такого макета:

<RelativeLayout
    android:layout_width = "match_parent"
    android:layout_height = "match_parent">

    <LinearLayout
        android:id = "@+id/your_linear_layout"
        android:layout_alignParentEnd = "true"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:orientation = "vertical">

    </LinearLayout>

    <ImageView
        android:id = "@+id/your_image_view"
        android:layout_alignParentEnd = "true"
        android:layout_width = "wrap_content"
        android:layout_height = "match_parent"
        android:src = "image"/>

</RelativeLayout>

Затем в вашем действии или фрагменте вам нужно будет программно установить высоту и ширину LinearLayout, чтобы они соответствовали ImageView.

ImageView iv = findViewById(R.id.your_image_view);
int ivHeight = iv.getHeight();
int ivWidth = iv.getWidth(); 

LinearLayout ll = findViewById(R.id.your_linear_layout);
LayoutParams llParams = ll.getLayoutParams();

llParams.height = ivHeight;
llParams.width = ivWidth

ll.setLayoutParams(llParams);

Тег «src» гарантирует, что соотношение сторон изображения сохраняется. Имейте в виду, что вам также придется обрабатывать изменение размера после поворота таким же образом.

Try this code

 <?xml version = "1.0" encoding = "utf-8"?>
    <LinearLayout 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"
        android:orientation = "horizontal"
    >
      <RelativeLayout
          android:layout_weight = "1"
          android:layout_width = "match_parent"
          android:layout_height = "match_parent">
          <ImageView
              android:layout_width = "match_parent"
              android:layout_height = "match_parent" />
          <LinearLayout
              android:layout_width = "match_parent"
              android:layout_height = "match_parent"></LinearLayout>
      </RelativeLayout>
        <RelativeLayout
    android:layout_weight = "1"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent">

        </RelativeLayout>
    </LinearLayout>

почему вы берете дополнительный относительный макет в LinearLayout

Chetan Joshi 28.11.2018 06:34

Я использовал вес 1, поэтому нужно 2 макета

Athira 28.11.2018 08:40

Другие вопросы по теме