Utilisation de la liste des calques pour afficher des images dessinables

Android studio 2.0 aperçu 3b

Bonjour,

J'ai créé la mise en page suivante que je veux utiliser pour un arrière-plan pour mon application. J'utilise le layer-list et je veux afficher un bol de pois dans 2 endroits. Tout semble ok dans l'aperçu, mais quand je cours sur genymotion ou certains appareils Chinois bon marché, l'image s'étend sur l'écran. Cependant, sur L'AVD Android, tout semble bien et sur mon Nexus 5 (appareil réel) tout fonctionne bien.

C'est ce que je veux et c'est ainsi qu'il est affiché dans L'AVD et le Nexus 5. Comme vous pouvez le voir il n'y a pas de problème.

<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>

J'ai mis peas.png fichier drawable-nodpi et il suffit d'ajouter la largeur et la hauteur dans le layer-list

Et quand je cours sur le genymotion et certains appareils intelligents bon marché, je reçois ce qui suit: entrez la description de l'image ici

Just quick summary.

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

Je suis juste confus dans ce que je devrais croire. J'ai également essayé d'utiliser le bitmap pour voir si cela en ferait différence.

Merci beaucoup pour toutes les suggestions.

25
demandé sur sathish kumar 2015-12-15 19:28:43

2 réponses

Mettez à jour votre liste de calques comme suit

<?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>

29
répondu SachinS 2015-12-21 05:25:45

Placez vos images dans tous les dossiers de densité (xxhdpi, xhdpi, hdpi).

Le système sélectionne les ressources d'image en fonction de la résolution de l'écran.

9
répondu Akhil Jayakumar 2017-08-22 05:54:45