2016-03-16 2 views
0

После масштабирования изображения, которое я использую для своего ImageButton с помощью Nine-patch Generator для извлечения всех файлов в формате dpi, а также для поддержания соответствующих расширений «.9» и ссылки на растровое изображение в src кнопки, я еще получить следующий результат с Nexus 5 виртуальный эмулятор (1080X1920, xxhdpi):Масштабирование ImageButton для различных размеров экрана

enter image description here

... Там нет никакого способа в аду, что ImageButtons являются 227X53 пикселей (xxhdpi) здесь ... Но, скорее, система получает более низкий dpi, например mdpi.

Вот XML код только одной из кнопок:

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/demosBtn" 
    android:src="@drawable/demo_btn" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:background="@android:color/transparent" /> 

И как для вытяжки файла ресурсов кнопки демо:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/pressed_demo" android:state_pressed="true"/> 
    <item android:drawable="@drawable/norm_demo"/> 
</selector> 

P.S. Я попробовал это с ImageView, установил его как clickable, установил adjustViewBounds в true и установил scaleType в centerCrop, и все же он не сработал.

+0

Изображения, которые вы используете в реальных растровых изображениях с 9 патчами? Если это так, я мог бы видеть ошибку, подобную этому. Линии над выделенной ошибкой заставляют меня думать, что это не так. Если это так, вручную добавление расширений не будет работать. Каков конечный эффект, который вы пытаетесь достичь? – wblaschko

+0

Ну, они были первоначально масштабированы png-изображениями, а затем я загрузил их в каталог соответствия dpi, а затем я «вручную» изменил имена файлов и каталога dpi на исходное имя файла вместе с расширением «.9». если это то, что вы просите lol – DaveNOTDavid

+0

http: //stackoverflow.com/questions/36039936/scaling-imagebuttons-for-various-screen-sizes ... В принципе, эмулятор Nexus 5 (xhdpi), похоже, извлекает файл с разрешением dpi из каталога lpdi. – DaveNOTDavid

ответ

1

Использование SVG (Масштабируемая векторная графика)! Вы можете масштабировать их до любого разрешения, и они по-прежнему выглядят супер HD. : D

+0

Я ценю предложение, но моя проблема здесь в том, что всякий раз, когда я ссылаюсь на растровое изображение в src ImageButton, система выбирает неправильное растровое изображение на основе dpi на экране (как показано выше в отредактированном сообщении). – DaveNOTDavid

Смежные вопросы