2015-12-24 1 views
0

Je travaille sur une application depuis un petit moment maintenant qui crée un puzzle de tuiles. Je suis au point où je suis en train de tester différents écrans de taille et de densité. En utilisant Krita, j'ai redimensionné les images de mosaïque jusqu'à 110 x 110 pixels pour une utilisation au format mdpi. Bizarrement, cette taille a très bien fonctionné dans l'émulateur xhdpi que j'ai utilisé jusqu'ici, mais l'émulateur mdpi que j'ai créé réduit considérablement les images. Alors que je pourrais simplement créer des images plus grandes pour les densités d'écran plus petites, il défie ce que je comprends sur la façon dont les poignées de android de la documentation. Ces images ne devraient-elles pas avoir explosé avec des résolutions plus basses? Voici la partie mise en grille du fichier de mise en page:Résolution d'écran avec le problème d'images

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

Ceci est la façon dont il regarde dans le visualisateur (ce qui est à quoi il ressemble sur un écran xhdpi):

enter image description here

encore dans un mdpi écran, il ressemble à:

enter image description here

Je voudrais savoir pourquoi cela se produit avant que j'adjus aveuglément t images, mais après la plupart d'une journée de création de divers émulateurs et la recherche sur le web, je suis coincé. Toute aide sera très appréciée.

Répondre

1

1) First Way vous pouvez créer toutes les tailles d'images à partir de ce lien https://romannurik.github.io/AndroidAssetStudio/ il suffit de télécharger l'image sur ce site et vous obtiendrez toutes les tailles d'images pour tous drawable.it peut vous aider à régler dans toutes les tailles.

ou si vous aimez pas de la première façon, vous pouvez utiliser

ce Second Way Pour créer une icône pour différentes densités, vous devez suivre le rapport 2: 6 d'échelle entre les quatre: 3: 4 densités primaires (moyenne, haute, x-haute et xx-haute, respectivement). Par exemple, considérez que la taille d'une icône de lancement est de 48 x 48 dp.

Cela signifie que la ligne de base (MDPI) actif est 48x48 px,

et la forte densité (HDPI) actif doit être 1,5 fois la ligne de base à 72x72 px,

et la densité de x-haut (XHDPI) l'actif devrait être 2x la ligne de base à 96x96 px, et ainsi de suite. Remarque: Android prend également en charge les écrans LDPI de taille 36 x 36 px, mais vous n'avez normalement pas besoin de créer d'actifs personnalisés à cette taille, car Android réduit de moitié vos ressources HDPI correspondre à la taille attendue.

De même pour la taille d'élément XXHDPI, elle doit être de 144 x 144 pixels.

Source: developer.android.com

+0

J'apprécie la tentative, mais c'est directement à partir du site du développeur. Cela n'explique pas pourquoi une image correctement dimensionnée pour les écrans xldpi serait _smaller_ sur un écran mdpi. Je crois comprendre qu'un écran à plus faible résolution étalera des images de plus grande densité. –