Подтвердить что ты не робот

Использование списка слоев для отображения некоторых доступных изображений

Android studio 2.0 Preview 3b

Здравствуйте,

Я создал следующий макет, который я хочу использовать для фона для своего приложения. Я использую layer-list, и я хочу отобразить миску гороха в двух местах. Все выглядит нормально в предварительном просмотре, но когда я запускаю genymotion или некоторые дешевые китайские устройства, изображение растягивается по экрану. Тем не менее, на Android AVD все выглядит отлично, и на моем Nexus 5 (реальное устройство) все работает нормально.

Это то, что я хочу, и так оно отображается в AVD и Nexus 5. Как вы можете видеть, проблем нет.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:centerX="0.5"
                android:centerY="0.3"
                android:endColor="#08e25b"
                android:gradientRadius="300dp"
                android:startColor="#b7e9c9"
                android:type="radial" />
        </shape>
    </item>

    <item
        android:width="48dp"
        android:height="48dp"
        android:left="350dp"
        android:top="400dp">
        <bitmap android:src="@drawable/peas" />
    </item>

    <item
        android:width="68dp"
        android:height="68dp"
        android:drawable="@drawable/peas"
        android:left="-20dp"
        android:top="480dp" />
</layer-list>

Я разместил файл peas.png в drawable-nodpi и просто добавлю ширину и высоту в layer-list

И когда я запускаю genymotion и некоторые дешевые смарт-устройства, я получаю следующее: введите описание изображения здесь

Just quick summary.

Nexus 5 real device and AVD devices works ok
Genymotion and cheap smart devices doesn't display correctly

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

Большое спасибо за любые предложения.

4b9b3361

Ответ 1

Обновите свой список слоев следующим образом

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <gradient
            android:centerX="0.5"
            android:centerY="0.1"
            android:endColor="#08e25b"
            android:gradientRadius="300dp"
            android:startColor="#b7e9c9"
            android:type="radial" />
    </shape>
</item>
<item
    android:width="48dp"
    android:height="48dp"
    android:bottom="68dp"
    android:right="-20dp">
    <bitmap
        android:gravity="bottom|right"
        android:src="@drawable/peas" />
</item>
<item
    android:height="68dp"
    android:left="-20dp"
    android:bottom="-20dp"
    android:width="68dp">
    <bitmap
        android:gravity="bottom|left"
        android:src="@drawable/peas" />
</item>

Ответ 2

Поместите изображения во все папки плотности (xxhdpi, xhdpi, hdpi).

Система выбирает ресурсы изображения на основе разрешения экрана.