2011-05-18 4 views
2

Dans mon application, j'utilise la méthode setMargins (....) pour certaines vues.Aide sur: View.setMargins (gauche, haut, droite, bas);

dans ma mise en page, je fixe la largeur, hauteur et la taille de mes vues avec « dp », pas de pixels,

et dans mon code, quand je définir les marges, il donne un mauvais résultat, mais quand je changer dp avec px dans ma mise en page, c'est très bien. Donc ma question est: puis-je définir des marges avec des valeurs dp, ?? exemple:

myView.setMargins(left in dp , top in dp , right in dp , bottom in dp) ; 

merci à l'avance

Répondre

7

Vous pouvez le faire facilement, il suffit de définir des éléments de dimension (valeurs strings.xml) et les référencer dans votre code.

Ceci est la ligne de strings.xml

<dimen name="left_border_distance">32dip</dimen> 

mais vous n'avez pas besoin de mettre ce directement, plutôt via IDE.

Puis dans votre code

int marginLeft = (int) getResources().getDimensionPixelSize(R.dimen.left_border_distance); 
myView.setMargins(marginLeft , top in dp , right in dp , bottom in dp) ; 
+0

Salut, merci pour votre réponse rapide: p, pouvez-vous me donner un exemple de ce plz, deuxième : existe-t-il un autre moyen de le faire sans passer avec res/values ​​/ strings.xml ?? Merci Zelimir – Houcine

+0

Une autre approche est décrite dans la réponse ci-dessous. Je préfère placer les valeurs de conception de l'interface graphique sur les ressources et ne pas utiliser les valeurs codées en dur dans le code. Ils sont faciles à changer d'un endroit. – Zelimir

+0

votre approche est bonne, mais je développe un sdk pour les annonces, donc j'ai besoin de définir que dans le code, pas dans les chaînes.xml :) – Houcine

Questions connexes