2013-06-10 1 views
0

Je souhaite créer une grille simple de 6 boutons carrés au centre de l'écran. Agir comme un menu. Le problème est que je ne sais pas comment je peux les mettre à l'échelle avec la taille de l'écran. Par exemple, un carré de 100 pd est acceptable sur les petits écrans, mais sur les grands écrans, il est écrasé par l'espace vide. Mais agrandir les carrés a l'effet inverse sur les petits écrans.Comment créer une grille qui s'adapte à la taille et à la densité de l'écran

Y at-il un moyen facile de le faire ou devrais-je besoin de créer par programme les carrés à l'exécution avec beaucoup de maths.

Je donnerais du code mais je n'ai vraiment rien qui ne soit un fichier XML de base qui code dur les tailles des carrés.

Merci.

Répondre

0

Les dimensions (en particulier celles mesurées en dp, comme les côtés d'un bouton carré ou la distance entre les boutons) peuvent être définies de manière dynamique dans dimens.xml, qui peut être défini pour différentes tailles d'écran en créant des dossiers spéciaux tels comme /res/values-hdpi, /res/values-xlarge, /res/values-sw720dp etc. avec leurs propres fichiers dimens.xml à l'intérieur. Voir http://developer.android.com/guide/practices/screens_support.html pour plus de détails.

Dans votre mise en page xml-vous:

<ImageView 
    android:id="@+id/button1" 
    android:layout_height="@dimen/button_height" 
    android:layout_width="@dimen/button_width" 
    android:layout_marginBottom="@dimen/distance_between_buttons" 
    android:src="/res/drawable/imgbutton"/> 

<ImageView 
    android:id="@+id/button2" 
    android:layout_height="@dimen/button_height" 
    android:layout_width="@dimen/button_width" 
    android:layout_marginBottom="@dimen/distance_between_buttons" 
    android:src="/res/drawable/imgbutton"/> 

<ImageView 
    android:id="@+id/button3" 
    android:layout_height="@dimen/button_height" 
    android:layout_width="@dimen/button_width" 
    android:src="/res/drawable/imgbutton"/> 

En /res/values/dimens.xml vous pouvez avoir:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="button_height">100dp</dimen> 
    <dimen name="button_width">100dp</dimen> 
    <dimen name="distance_between_buttons">20dp</dimen> 
</resources> 

Dans/res/valeurs grandes vous pouvez avoir:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="button_height">200dp</dimen> 
    <dimen name="button_width">200dp</dimen> 
    <dimen name="distance_between_buttons">40dp</dimen> 
</resources> 
+0

Que devrait contenir le fichier dimens.xml? Pourriez-vous donner un extrait de code rapide? –

+0

Mise à jour avec des extraits de code. – Piovezan

+0

Donc, si j'avais une mise en page pas dans l'un de ces dossiers spéciaux, mais le dimen.xml dans ces dossiers. Quand il gonfle la mise en page, il lit le dimen.xml qui s'applique à la taille actuelle de l'écran. Est-ce exact? –

Questions connexes