2017-02-04 2 views
1

Я создал центральную компоновку. Но он не масштабирует изображения до dpi. Как сделать их больше как экран устройства? Также как масштабировать их даже в редакторе? Потому что я не могу. Они всегда такого размера.Изображения не масштабируются с размером экрана

Ниже приведен пример кода ImageButton:

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:srcCompat="@drawable/broadcasts" 
    android:background="?android:selectableItemBackground" 
    android:onClick="onWipButton_Click" 
    android:layout_marginRight="30dp" 
    android:layout_marginEnd="30dp" 
    android:id="@+id/imageButton2" 
    android:adjustViewBounds="true" 
    android:cropToPadding="false" 
    android:scaleType="fitXY" 
    android:layout_above="@+id/textView5" 
    android:layout_toLeftOf="@+id/textView5" 
    android:layout_toStartOf="@+id/textView5" /> 

Структура папки со всеми точками на дюйм.

Folder structure with all dpi.

В устройстве с высокой точек на дюйм. Режим

On device with high dpi.

Дизайн в студии.

Design mode in studio.

+0

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

+0

@MohammedAtif масштабирование изображений сделает их размытыми. – weston

+0

@weston Да, я знаю, что масштабирование изображений ** может ** сделать их размытыми. Это также зависит от изображения. Gor example, если вы хотите, чтобы ваше изображение было 150dp на устройстве xxhdpi и то, что у вас есть, - изображение 400 пикселей, масштабирование до 450 пикселей не приведет к значительному размытию. Да, в идеале изображение должно соответствовать размеру заполнителя, но мало масштабируется. –

ответ

0

Я предполагаю, что у вас есть на самом деле есть активы различных размеров в этих папках ресурсов на уровнях масштаба от 1x, 1.5x, 2x, 3x, 4x для м, ч, ки, XXh, xxxh ,

Тогда поймите, что устройства не имеют фиксированной ширины ни физически, ни с точки зрения dp s. Таким образом, хотя это может правильно подобрать правильный ресурс для разрешения экрана, это не означает, что он будет занимать тот же самый% доступной ширины на каждом устройстве. Он должен быть примерно равным физическому размеру, если измерять с линейкой (примерно то же самое, что и вы).

В дизайнере выберите экран с одинаковой шириной и DPI. Вы должны увидеть проблему во время разработки.

Если вы хотите увеличить изображение, предоставление более крупных активов будет самым простым решением и не будет создавать размытые масштабированные изображения.

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

res/drawable-mdpi/ 
res/drawable-sw600dp-mdpi/ 
res/drawable-hdpi/ 
res/drawable-sw600dp-hdpi/ 
etc. 

sw600dp является «наименьшая ширина» Классификатор, то есть он применяется, когда устройство имеет ширину не менее 600dp. Это часто используемый номер для распознавания устройств, это то, что раньше называлось экраном large. Если вы хотите, чтобы поддерживать различные средства для 10" таблетки, вы можете также использовать sw720

Пожалуйста, смотрите здесь для получения дополнительной информации о квалификациях папки размера экрана ресурса:. https://developer.android.com/guide/practices/screens_support.html#NewQualifiers

+0

Это означает, что мне нужно создать новый макет для каждого размера экрана? –

+0

Na, я только добавил больше деталей. Вы можете делать все с различными папками ресурсов. – weston

+0

Эй @ NapoleonTheCake, если это отсортировано по вашей проблеме, пожалуйста, поддержите и примите. – weston

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