Intereting Posts
Биллинг в приложении v3 не может запрашивать элементы без сетевого подключения или в режиме полета / полета Нужна помощь в написании модульного теста с использованием Mockito и JUnit4 Как интегрировать facebook, twitter и google плюс в приложение для Android Android Studio 0.8.2 – Синхронизация проекта Gradle не выполнена Как получать уведомления при изменении активности (приложения) на переднем плане Error: Атрибут «***» уже определен при использовании двух библиотечных проектов в Android ListView с алфавитами справа, как и iPhone. Является ли это возможным? SetSelection не меняет позицию ListView Когда я запускаю свой код UIAutomator для Android, он показывает ошибку Заполните форму в WebView с помощью Javascript Ошибка Android Studio: Ошибка: CreateProcess error = 216, эта версия% 1 несовместима с версией Windows, в которой вы работаете Вводить CSS на сайт с webview в android Использовать AppRTC с настраиваемым сервером Как опубликовать на стене Facebook, используя SDK для Android android, без открытия диалогового окна Ошибка: не удалось инициализировать класс com.android.ide.common.util.ReadWriteProcessLock после обновления до AS 2.4

Android: Как предотвратить масштабирование изображения в ImageView или ImageButton?

Как я могу предотвратить автоматическое масштабирование моего растрового изображения в ImageView или ImageButton, если изображение или кнопка растянуты с использованием «fill_parent» или с использованием «веса»?

Это будет полезно, например, создать 4-кнопочную панель инструментов в верхней части экрана, где кнопки находятся на одинаковом расстоянии, но изображения внутри кнопок продолжают растягиваться, даже если я использую scaleType = «center», что должно предотвратить Масштабирование в соответствии с документом, но это не так.

Любое понимание очень ценится!

Благодаря,

Solutions Collecting From Web of "Android: Как предотвратить масштабирование изображения в ImageView или ImageButton?"

Я обнаружил, что при использовании android: background автоматически масштабирует изображение, которое вы используете там, до размера View.

Я попытался использовать android: src, чтобы поместить изображение в представление. Изображение не масштабировалось, но я не мог получить изображение в центре относительно размера представления.

Поэтому я попытался сделать всю кнопку Button своей собственной относительной компоновкой, и это то, что я использовал:

<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_height="fill_parent" android:layout_width="fill_parent"> <ImageButton android:id="@+id/ImageButton01" android:layout_height="fill_parent" android:layout_width="fill_parent"></ImageButton> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/cardback1" android:layout_centerInParent="true"></ImageView> </RelativeLayout> 

ImageButton находится в фоновом режиме и всегда будет иметь тот же размер, что и макет. ImageView, однако, всегда будет находиться в центре RelativeLayout и не будет масштабироваться. Таким образом, RelativeLayout сам может расти и двигаться, а изображение поверх кнопки всегда будет иметь одинаковый размер, но кнопка будет расти. Изображение будет уменьшаться, если макет становится меньше самого изображения.

Я думаю, это то, что вы искали. Там может быть лучший способ сделать это, но это все, что я могу придумать прямо сейчас.

Просто измените свой рисунок, примените более прозрачный фон. Скажите, что мой drawable в hdpi равен 41 * 48 px icon.png. Я создал новое изображение 60 * 60 px с прозрачным фоном, скопируйте предыдущий значок.png и сохраните его под тем же именем. Таким образом, вам не нужно прикасаться к макетам.

Затем вы можете проверить зону кнопки больше, если вы применяете непрозрачный андроид: фон :

 <ImageButton android:id="@+id/widget_open" android:src="@drawable/icon_widget_arrow_up" android:background="#ff777777" android:layout_height="wrap_content" android:layout_width="wrap_content"></ImageButton> 

Примените предыдущий и новый чертежи к android: src , вы должны четко видеть область ImageButton.

Кстати, я запускаю приложение в режиме совместимости.

Если изображение масштабируется, убедитесь, что вы не используете приложение в режиме совместимости (например, если вы нацелились на Android 1.5 / 1.6 без поддержки нескольких плотностей, и вы запускаете приложение на Android 2.0).