unidad - Android: ¿cómo usar dip(densidad de píxeles independientes) en el código?
unidad de medida sp (2)
¿Cómo especifico que un parámetro int
está en dip? Específicamente, cómo escribiría el equivalente de:
android:layout_width="50dip"
android:layout_height="50dip"
Algo como...:
LayoutParams params = new LayoutParams(50, 50)
Existe un método incorporado que también lo hará: TypedValue.applyDimension .
// Convert from 50dip to actual pixels
final int width = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics());
final int height = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics());
LayoutParams params = new LayoutParams(width, height);
Puedes usar esto para convertir de unidades sp
a píxeles también.
Use la fórmula mencionada aquí http://developer.android.com/guide/practices/screens_support.html#screen-independence para convertir el píxel predeterminado en un píxel independiente de densidad. O marque esto ¿Cuál es la forma correcta de especificar las dimensiones en DIP desde el código Java?