Использование списка слоев для отображения некоторых доступных изображений
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
Я просто смущен тем, во что я должен верить. Я также попытался использовать растровое изображение, чтобы понять, не изменит ли это.
Большое спасибо за любые предложения.
Ответы
Ответ 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).
Система выбирает ресурсы изображения на основе разрешения экрана.