Intereting Posts

Почему я получаю пустое пространство сверху и снизу своего ImageView в моем RelativeLayout?

Я использую relativelayout для наложения на изображения. На всех размерах экрана, которые я тестировал (от 2,7 до 10,1 дюйма), я всегда получаю пустое пространство поверх моего изображения. В моей среде IDE я всегда вижу, что мой relativelayout вызывает дополнительное пространство сверху и снизу моего изображения.

Почему это? Я установил все атрибуты height для wrap_content и даже добавил атрибут adjustViewBounds .

Примечание. Вы должны знать, что мой образ намного больше по размеру, а это значит, что будет какое-то масштабирование.

Спасибо за ваши советы!

Вот код:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:orientation="vertical" android:focusable="true" android:focusableInTouchMode="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="@string/bgf" android:textColor="#000000" android:textSize="25sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:paddingRight="5dp" android:paddingLeft="5dp" android:paddingBottom="5dp" android:layout_gravity="center_horizontal" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:src="@drawable/cde" android:contentDescription="@string/cde" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:layout_gravity="center_horizontal" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:src="@drawable/fgh" android:contentDescription="@string/abc" /> </RelativeLayout> </LinearLayout> </ScrollView> 

Solutions Collecting From Web of "Почему я получаю пустое пространство сверху и снизу своего ImageView в моем RelativeLayout?"

Это происходит по мере того, как изображение масштабируется, чтобы соответствовать доступной области, не теряя пропорции изображения. Вы получаете пустое пространство, потому что изображение сначала занимало доступную ширину и в соответствии с соотношением сторон исходного изображения высота спускалась.

Чтобы получить более четкое понимание, я предлагаю вам сделать следующее:

  • Установите цвет фона относительного макета на некоторый цвет

Теперь вы можете понять пространство между imageView и relativelayout.

После того, как вы проверили это на своем устройстве, выполните следующие изменения и повторите попытку.

  • Установите атрибут scaleType = "fitXY" в вашем изображении.

Это позволит масштабировать изображение и занять всю область, доступную для ImageView. (Соотношение сторон исходного изображения будет потеряно в этом случае). Теперь вы узнаете объем области, в которой занимался imageView.

Я полагаю, что как только вы это сделаете, вы можете сделать вывод:

  1. В первом запуске, если вы установили фон relativeLayout как черный, он не будет виден, так как imageView занимает всю область, не оставляя пробелов.

  2. Во втором прогоне изображение будет покрывать всю высоту и ширину, хотя соотношение сторон было потеряно. Следовательно, это указывает на то, что imageView покрывает ширину и высоту, и не осталось места, его соотношение сторон изображения, то есть проблема

Если вы придете к другому результату в целом, пожалуйста, сообщите нам, мы сможем его решить

РЕДАКТИРОВАТЬ :

Удалите также прокладки, которые вы указали для ImageView.

У меня была точная проблема. После долгого конфликта я решил это, следуя этому

** https://stackoverflow.com/a/22144391/2405473

И добавьте следующее в мою программу

  android:adjustViewBounds="true" 

Он отлично работает