Я пытаюсь подобрать образ внутри ImageButton для тестирования, но способ ImageButton ведет себя не так, как ожидалось.
я сделал изображение 988x89 пикселей PNG и разместил его внутри ImageButton, который находится в пикселях с 7inches 1024x600. экран. ImageButton 988dp x 89dp, я знаю, что dp не совпадает с пикселями, но для этого разрешения я ожидал, что изображение будет достаточно масштабировать, чтобы занять большую часть ImageButton. Также я изменился на px вместо dp для тестирования, и это не имело никакого значения.
Но вместо этого ImageButton сделал изображение внутри него ОЧЕНЬ маленьким (синие линии являются границами ImageButton, а зеленая линия - индикацией выравнивания по центру).

so question # 1: Почему ImageButton делает изображение таким большим, как это настолько мало, когда оно может заполнить большую часть экрана, даже если размер ImageButton очень широк?
Итак, чтобы преодолеть это, я выбрал adjustViewBounds, который ничем не отличался, что ставит вопрос №2: Почему? Не следует ли настраивать границы представления для настройки границ обзора?
Код до сих пор:
<ImageButton
android:layout_width="988dp"
android:layout_height="89dp"
android:id="@+id/ibTest"
android:src="@drawable/image_top_test"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true"
android:cropToPadding="false"
android:layout_below="@+id/hlTopBar"
android:background="#00000000" />
Поэтому позже я изменил scaleType на fitCenter, и изображение стало:

Что странно и для меня, так как ImageButton имеет такое же соотношение сторон, как и изображение, поэтому я ожидал бы, что он будет соответствовать 100%, но он не подходит (есть разрыв в ширине с обеих сторон изображения).
Поэтому позже я изменил scaleType на fitXY, и я получил свой окончательный результат:

Кажется, что это ожидаемое изображение (сравнение изображения fitXY с изображением fitCenter в Photoshop показывает, что изображение fitCenter слегка овальное, но здесь его невозможно показать, что ожидается, так как ширина не соответствует изображению по высоте).
Итак, мой общий вопрос: (# 3): Какой правильный способ для установки изображения в Android, и ожидать, что он будет иметь обычный размер на экране, и почему масштабирование настолько грязное, и я это неправильно?
Я знаю, что есть проблемы с размерами экрана и dp и т.д., но масштабирование не ведет себя контролируемым образом, fitCenter делает овальное изображение, а fitXY слишком сильно зависит от меня, устанавливая соотношение правильного изображения на XY, поэтому я задаюсь вопросом, не делаю ли я что-то неправильно и как он должен быть правильным.
Окончательный код XML:
<ImageButton
android:layout_width="988dp"
android:layout_height="89dp"
android:id="@+id/ibTest"
android:src="@drawable/image_top_test"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true"
android:cropToPadding="false"
android:layout_below="@+id/hlTopBar"
android:background="#00000000"
android:scaleType="fitXY" />
Теперь, как будто вы пытаетесь просмотреть изображение 988px X 89px на экране xhdpi, где Android Os рассчитал размер изображения как 1976px X 178px, что намного больше, чем ваш размер изображения 988px X 89px. поэтому вы получаете небольшое изображение с большей площадью белого цвета.