2015-12-24 7 views
0

Я работаю над приложением на некоторое время, создавая головоломку. Я до такой степени, что я тестирую различные экраны размера и плотности. Используя Krita I, я масштабировал изображения плитки до 110 X 110 пикселей для использования в формате mdpi. Странно, что этот размер работал очень хорошо в эмуляторе xhdpi, который я использовал для тестирования до сих пор, но созданный мной эмулятор mdpi значительно уменьшил изображения. Хотя я мог просто создавать большие изображения для меньших плотностей экрана, он бросает вызов тому, что я понимаю о том, как андроид обрабатывает плотности из документации. Разве эти изображения не были взорваны при более низких разрешениях? Вот часть сетки Компоновка файла макета:Разрешение экрана с разрешением изображения

<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:columnCount="3" 
    android:rowCount="3" 
    android:id="@+id/TheGrid" 
    android:layout_centerInParent="true" 
    android:background="@color/background_floating_material_light" 
    android:animateLayoutChanges="true" 
    android:layout_toRightOf="@+id/title_inflater" 
    android:layout_toLeftOf="@+id/picture_inflator" 
    > 

    <ImageView 
     android:id="@+id/TopLeft" 
     android:clickable="true" 
     android:layout_column="0" 
     android:layout_row="0" 
     android:layout_gravity="fill" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 
    <ImageView 
     android:id="@+id/TopCenter" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="0" 
     android:layout_column="1" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 
    <ImageView 
     android:id="@+id/TopRight" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="0" 
     android:layout_column="2" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 


    <ImageView 
     android:id="@+id/CenterLeft" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="1" 
     android:layout_column="0" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 

    <ImageView 
     android:id="@+id/CenterCenter" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="1" 
     android:layout_column="1" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 
    <ImageView 
     android:id="@+id/CenterRight" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="1" 
     android:layout_column="2" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 

    <ImageView 
     android:id="@+id/BottomLeft" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="2" 
     android:layout_column="0" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 
    <ImageView 
     android:id="@+id/BottomCenter" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="2" 
     android:layout_column="1" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 
    <ImageView 
     android:id="@+id/BottomRight" 
     android:clickable="true" 
     android:layout_gravity="fill" 
     android:layout_row="2" 
     android:layout_column="2" 
     android:src="@drawable/star_trek_federation_emblem_9pc_1" 
     /> 

    <ImageView 
     android:id="@+id/mover" 
     android:layout_row="2" 
     android:layout_column="2" 
     android:visibility="invisible" 
     android:layout_gravity="fill" 
     /> 
</GridLayout> 

Это, как она выглядит в просмотрщик (который, как она выглядит на экране xhdpi):

enter image description here

еще в MDPI экран это выглядит следующим образом:

enter image description here

Я хотел бы знать, почему это происходит, прежде чем я просто слепо регулировки оборотов t, но через большую часть дня создания различных эмуляторов и поиска в Интернете я застрял. Любая помощь будет оценена по достоинству.

ответ

1

1) Первый путь вы можете создать все размеры изображений по этой ссылке https://romannurik.github.io/AndroidAssetStudio/ просто загрузить изображение на этот сайт, и вы получите все размеры изображения для все drawable.it может помочь вам настроить все размеры.

или если вы не любите от первого способа вы можете использовать

это Второй способ Чтобы создать иконку для различных плотностей, вы должны следовать 2: соотношение 6 масштабирования между четыре: 3: 4 первичные плотности (средний, высокий, х-высокий и хх-высокий, соответственно).

Например, считайте, что размер значка запуска указывается как 48x48 дп.

Это означает, что базовый уровень (MDPI) актив 48x48 точки,

и высокая плотность (ИПЧР) актив должен быть 1.5x базовой линии на 72x72 пикселей,

и х-высокой плотность (XHDPI) актив должен составлять 2x базовый уровень при 96x96 px и т. д.

Примечание. Android также поддерживает экраны с низкой плотностью (LDPI) с размером активов 36x36 px, но обычно вам не нужно создавать настраиваемые активы такого размера, потому что Android эффективно уменьшает ваши активы HDPI на 1/2 до соответствуют ожидаемому размеру.

Аналогично для размера активов XXHDPI должно быть 144x144 px.

Источник: developer.android.com

+0

Я ценю попытку, но это прямо с сайта разработчика. Он не объясняет, почему изображение, соответствующее размеру экранов xldpi, будет _smaller_ на экране mdpi. Я понимаю, что экран с более низким разрешением будет распространять изображения большей плотности. –

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