J'ai utilisé l'éditeur de mise en page à Eclipse pour ma motion Maory de mon UI puis j'ai créé le code pour le peupler de manière dynamique et les choses se présentent comme des tailles différentes. Le XML que j'utilise pour ajouter les images d'étoile ressemble à ceci: et le code Java que j'utilise pour faire la même chose ressemble à ceci: p> ViewGroup.MarginLayoutParams layout = new ViewGroup.MarginLayoutParams(22, 22);
layout.setMargins(2, 0, 2, 0);
ImageView star = new ImageView(mContext);
star.setImageResource(R.drawable.star_gold);
star.setLayoutParams(layout);
star.setAdjustViewBounds(true);
holder.Stars.addView(star);
5 Réponses :
Les pixels échelés changent en fonction des préférences de la taille de la police de l'utilisateur. P>
Lire à propos de Assistance à l'écran et à la résolution . P>
Vous trouverez également de bonnes informations sur DP et SP dans cette question: P>
de la documentation: p>
pixels indépendants de l'échelle (SP) Ceci est comme l'unité DP, mais c'est aussi échelonné par la taille de la police de l'utilisateur préférence. Il vous est recommandé d'utiliser cette unité lors de la spécification de la taille de la police, donc ils seront ajustés pour les deux Densité d'écran et préférence de l'utilisateur. P> blockQuote>
Cela ressemble à ce que vous voulez utiliser pour le dimensionnement de la police, mais j'utiliserais tremper pour des choses comme la marge / le rembourrage: p>
Pixel indépendant de densité (DIP) A unité de pixel virtuel que les applications peut utiliser pour définir leur UI, à Dimensions ou positions express d'une manière indépendante de la densité. P> blockQuote>
Tout d'abord, vous devriez utiliser des pixels indépendants de densité - Le pixel indépendant de la densité est équivalent à un pixel physique sur un écran de 160 dpi. Si vos ressources sont dimensionnées dans Votre problème est que votre code Java fonctionne dans des pixels bruts non calé, c'est pourquoi vos étoiles sont plus petites. La documentation Android a Instructions sur la conversion de DIP code> ou
DP code> - et non des pixels échoués -
sp code>. P>.
DIP CODE> Ils seront automatiquement mis à l'échelle sur les écrans avec différentes densités; C'est pourquoi les étoiles spécifiées dans votre XML achètent OK. Les pixels à l'échelle sont similaires mais doivent être utilisés pour des ressources texte uniquement car elles reflètent également les options de mise à l'échelle du texte. P>
DIP code> S à Pixels
. En bref, vous devez regarder le android.util.displaymetrics .dité code> champ
. p>
voilà, nous allons! Je dois obtenir la densité d'affichage.
// Convert the dips to pixels final float scale = getContext().getResources().getDisplayMetrics().density; mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale + 0.5f);
Retour à la question initiale de savoir comment définir la taille du texte dans les trempettes ou les pixels à l'échelle en Java: ou p>
Les pixels mis à l'échelle ont eu la texture de la peau de poisson enlevée d'eux, généralement par l'abrasion mécanique.