¿Es posible cambiar la unidad para Paint.setTextSize()
? Hasta donde yo sé, es un píxel, pero me gusta establecer el tamaño del texto en DIP para soporte de múltiples pantallas.Cómo establecer la unidad para Paint.setTextSize()
Respuesta
Convierte como este
// The gesture threshold expressed in dip
private static final float GESTURE_THRESHOLD_DIP = 16.0f;
// Convert the dips to pixels
final float scale = getContext().getResources().getDisplayMetrics().density;
mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale + 0.5f);
// Use mGestureThreshold as a distance in pixels
de aquí http://developer.android.com/guide/practices/screens_support.html#dips-pels
Sé que este tema es viejo y ya ha respondido, pero me gustaría sugerir también esta pieza de código:
int MY_DIP_VALUE = 5; //5dp
int pixel= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
MY_DIP_VALUE, getResources().getDisplayMetrics());
Y aquí hay un método aún más corto para convertir dp-s a px-els teniendo métricas de visualización en la cuenta
Si su objeto Paint se utiliza para dibujar texto en un lienzo, puede dejar que el Canvas maneje el escalado por usted.
Al llamar a Canvas.drawText()
, el tamaño del texto primero se determina por el objeto pasado en Paint
, que se puede establecer a través de Paint.setTextSize()
. El tamaño del texto se escala automáticamente por Canvas
en función de la densidad del lienzo, que se puede encontrar en Canvas.getDensity()
.
Al ajustar el tamaño del texto en un objeto de pintura que será dibujado en la lona, funciona con un valor unitario de dp
o sp
lienzo y dejar que controlan el escalado para usted.
En 'Paint.setTextSize (flotar TEXTSIZE)' 'la textSize' es un valor de píxel. No me parece seguro que esto se escale automáticamente. Si lo hiciera, entonces pensaría que la documentación diría que las unidades son 'sp' o' dp' en lugar de píxeles. – Suragch
La respuesta aceptada es para gestos, no para establecer el tamaño del texto. La respuesta más alta (en el momento de escribir esto) está cerca, pero la documentación recomienda usar sp
en lugar de dp
porque además de escalarse para densidades de pantalla (como dp
valores), sp
también se escala según los tamaños de fuente preferidos por el usuario. La respuesta de @ pelotasplus solo funciona si obtiene el valor de los recursos.
Desde un int
en el código
int spSize = 17;
float scaledSizeInPixels = spSize * getResources().getDisplayMetrics().scaledDensity;
mTextPaint.setTextSize(scaledSizeInPixels);
O, alternativamente
int spSize = 17;
float scaledSizeInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
spSize, getResources().getDisplayMetrics());
mTextPaint.setTextSize(scaledSizeInPixels);
De los recursos
O si tiene el valor sp
o dp
de recursos:
<resources>
<dimen name="fontSize">17sp</dimen>
</resources>
con
float scaledSizeInPixels = getResources().getDimensionPixelSize(R.dimen.fontSize);
mTextPaint.setTextSize(scaledSizeInPixels);
Otros enlaces
- 1. ¿Qué unidad de medida usa Paint.setTextSize (float)?
- 2. Cómo establecer un tiempo de espera para el método File.Create en la unidad de red?
- 3. ¿Cómo pruebo la unidad para EXC_BAD_ACCESS?
- 4. ¿Cómo probar la unidad?
- 5. ¿Cómo establecer la longitud de la unidad del eje en matplotlib?
- 6. OpenGL ¿Cómo analizar la unidad?
- 7. ¿Cómo establecer la alineación para funciones virtuales?
- 8. Cómo establecer el borde para la tabla
- 9. ¿Cómo probar la unidad NSCoding?
- 10. Cómo PHP ldap_search() para obtener la unidad organizativa de usuario si no conozco la unidad organizativa para base DN
- 11. Cómo escribir unidad de pruebas para la aplicación interactiva consola
- 12. ¿Cómo hacer la prueba de unidad para Excepciones?
- 13. Cómo escribir la prueba de unidad para "InterruptedException"
- 14. Cómo simular DataReader para probar la unidad DAL
- 15. Usar Clojure para probar la unidad Java
- 16. analogía WPF para la unidad 'em'
- 17. ¿Por qué Set-Acl en la raíz de la unidad intenta establecer la propiedad del "objeto"?
- 18. Cómo probar las subclases de la unidad
- 19. ¿Cómo probar la unidad de su API?
- 20. Cómo probar la unidad HtmlHelper con Moq?
- 21. cómo establecer la sombra para la imagen redonda (css)
- 22. ¿Cómo puedo probar la unidad GC?
- 23. ¿Cómo puedo probar la unidad? ¿Es descartable?
- 24. Requisito para establecer la ruta JRE en windows7, como establecer la ruta para JDK
- 25. ¿Cómo pruebo la unidad de un finalizador?
- 26. ¿Cómo pruebo la unidad de objetos heredados?
- 27. Cómo probar la unidad de análisis JSON
- 28. ¿Cómo pruebas tu unidad?
- 29. ¿Cómo se prueba la unidad Scala en Eclipse?
- 30. ¿Cómo pruebo la unidad Django Views?
otro enfoque simalar que utiliza un archivo de recursos http://stackoverflow.com/a/5369766/1815624 – CrandellWS