2012-06-06 6 views
0

J'ai une mise en page simple, qui ont un bouton.Emulateur ne fonctionne pas correctement avec dps

<Button 
    android:id="@+id/button1" 
    android:layout_width="200dp" 
    android:layout_height="80dp" 
    android:text="Button"/> 

Je veux voir que le bouton s'ajuste correctement en différentes densités. J'ai créé trois émulateurs, avec une densité d'affichage à cristaux liquides abstraite différente (120,160 et 240).

Lorsque j'exécute l'application dans les émulateurs d'arborescence, la taille du bouton est plus grande dans chaque émulateur. Si je lis la hauteur et la largeur du bouton en pixels, je peux voir que la taille est correcte.

Y a-t-il un problème de densité dans l'émulateur?

La version d'Android est ICS.

Merci beaucoup.

Modifier.

Je télécharge quelques images sur le problème. Les premières images sont en 160 densités et les secondes ont 240.

screen_with_160_screen_home
screen_with_240_screen_home

Vous pouvez voir que tous les éléments ara plus dans le 240, même l'écran d'accueil.

+0

Vous devez lire ceci: [page: Supporting Multiple Screens] (http://developer.android.com/guide/prac tices/screens_support.html) – cstrutton

+0

J'ai lu cette page, donc je pense que le problème est peut-être dans l'émulateur, mais je ne sais pas si je me trompe. – user1242132

+0

Désolé, cette page n'a pas été trouvée. –

Répondre

1

// fonction de la densité, il sera différent lorsque vous utilisez le dp ou trempez

if 200dp in 120 dpi=200×120÷160=150px 
if 200dp in 160 dpi=200×160÷160=200px 
if 200dp in 240 dpi=200×240÷160=300px 

cette dp/dip sera échelle automatique

si vous voulez la taille fixe signifie que vous devez utiliser le px

Best Practices:

+0

Ce sont les tailles que l'application me renvoie. Mais, je pense que le bouton devrait prendre la même taille dans toutes les densités, parce que, il y a la plupart des pixels dans les hautes densités. J'ai remarqué que l'écran d'accueil est également affiché sans échelle. Merci beaucoup. – user1242132

+0

Je ne vous reçois pas, avez-vous lu le lien des meilleures pratiques. Par exemple, une vue avec layout_width = "100dp" mesure 100 pixels de large sur un écran de densité moyenne et le système l'agrandit jusqu'à 150 pixels sur un écran haute densité, de sorte que la vue occupe à peu près le même espace physique sur l'écran . –

+0

J'ai édité la question et j'ai téléchargé deux images, pour essayer d'expliquer le problème. – user1242132

Questions connexes