Dans mon application Android j'ai des pixels (69px) et j'ai besoin de convertir ces pixels en dip (Density Independent Pixels).Comment convertir les pixels en dip (Density Independent Pixels) dans Android
Des suggestions?
Dans mon application Android j'ai des pixels (69px) et j'ai besoin de convertir ces pixels en dip (Density Independent Pixels).Comment convertir les pixels en dip (Density Independent Pixels) dans Android
Des suggestions?
espère que ce sera utile
Resources r = getResources();
float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 69, r.getDisplayMetrics());
Il suffit de diviser votre valeur en pixels par DisplayMetrics.density.
Ce qui est correct: diviser ou multiplier comme dans l'exemple de @ Khushboo? –
Diviser. La formule affichée par @Kushushbo convertit dp en px. Sur un affichage xhdpi, DisplayMetrics.density == 2.0f. Depuis 1 dp == 1 px sur un affichage mdpi et 1 dp == 2 px sur un affichage xhdpi, vous devez diviser pour convertir dp en px, et non l'inverse. –
Vous pouvez essayer ceci:
public int convertDiptoPx(int pixel){
float scale = getResources().getDisplayMetrics().density;
int dips=(int) ((pixel * scale) + 0.5f);
logMessage("Px=" +pixel+" DipValue="+dips);
return dips;
}
editted:
public int convertPxtoDip(int pixel){
float scale = getResources().getDisplayMetrics().density;
int dips=(int) ((pixel/scale) + 0.5f);
return dips;
}
Non, ce donne la même value.I signifie la valeur de pixel Dip – user1195614