En mi aplicación Android tengo píxeles (69px) y necesito convertir estos píxeles en dip (Density Independent Pixels).Cómo convertir píxeles en dip (Density Independent Pixels) en Android
¿Alguna sugerencia?
En mi aplicación Android tengo píxeles (69px) y necesito convertir estos píxeles en dip (Density Independent Pixels).Cómo convertir píxeles en dip (Density Independent Pixels) en Android
¿Alguna sugerencia?
la esperanza que esto sea útil
Resources r = getResources();
float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 69, r.getDisplayMetrics());
Sólo dividir su valor en píxeles por DisplayMetrics.density.
Qué es lo correcto: Dividir o multiplicar como en el ejemplo de @ Khushboo? –
Divide. La fórmula que muestra @Khushboo convierte dp a px. En una pantalla xhdpi, DisplayMetrics.density == 2.0f. Dado que 1 dp == 1 px en una pantalla mdpi y 1 dp == 2 px en una pantalla xhdpi, debe dividir para convertir dp a px, y no al revés. –
Puede probar esto:
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;
}
No se le está dando la misma value.I significa el valor de píxel como dip – user1195614