Intereting Posts
Android.content.ActivityNotFoundException: активности не найдено для обработки заставки Split Получение потока RTP – AudioStream, AudioGroup Как выделить память для симулятора Android более 768M в окнах? Eclipse не создает вспомогательный файл Как прокрутить вниз в ScrollView при запуске активности Прозрачный GIF в Android ImageView Как получить результат OnPostExecute () для основного действия, потому что AsyncTask – это отдельный класс? Как создать файл заголовка C с помощью инструмента Javah Что происходит с PendingIntents, когда пользователь обновляет приложение? HTTP POST запрос ANDROID 4 (работает в версии 2.3)? Что такое iml-файлы в Android Studio? Фрагменты не освобождаются из памяти Как использовать дерево зависимостей Gradle для разрешения несоответствия версии библиотеки поддержки Android? Как установить метки для оси X и Y в двухстрочной диаграмме с помощью aChartEngine в android? Sms-приложение не работает в Android 3.0 и выше

Почему я получаю пустое пространство сверху и снизу своего 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> 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  android:adjustViewBounds="true" 

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