2010-08-26 9 views
4

J'utilise le code suivant:android Imageview layoutparams en immersion?

ImageView i = new ImageView (mContext);

i.setImageResource (mImageIds [position]);

i.setScaleType (ImageView.ScaleType.FIT_XY);

 //pixels settings !!! 

i.setLayoutParams (nouveaux Gallery.LayoutParams (200, 100));

mais comme vous pouvez le voir, il définit les dimensions de mise en page en pixels.

Est-ce que quelqu'un sait comment faire la même chose mais en "trempe"?

Répondre

1
+0

remercie son look intéressant pour moi mais je ne comprends pas la formule ... Le comprenez-vous? pouvez-vous me donner un exemple sur la façon de convertir 100dip en pixel par exemple? – Fabien

+0

J'ai trouvé cette solution qui fonctionne parfaitement: http://stackoverflow.com/questions/2238883/what-is-the-correct-way-to-specify-dimensions-in-dip-from-java-code – Fabien

19

La méthode d'assistance suivante prend en tant que pixels indépendants du périphérique d'entrée (DIP) et renvoie des pixels réels pour le périphérique actuel.

private int getPixels(int dipValue) { 
    Resources r = getResources(); 
    int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
              dipValue, 
              r.getDisplayMetrics()); 
    return px; 
} 
10

Si vous stockez votre dimension en tant que ressource, vous pouvez utiliser

getResources().getDimensionPixelSize(id); 

Cela facilitera également d'ajuster vos mises en page.

Questions connexes