¿Qué unidad de medida usa Paint.setStrokeWidth() y necesito escalar este valor en función de la densidad de la pantalla actual?¿Qué unidad de medida usa Paint.setStrokeWidth()?
Es un valor flotante, así que sé que no es una cantidad de píxeles. Debe ser relativo a algo.
Esto es todo lo que dice la documentación de este escrito:
establecer el ancho para acariciar. Pase 0 a la carrera en modo rayita. Hairlines siempre dibuja un único píxel independiente de la matriz de canva.
Hola Romain, he intentado ejemplo PathEffect de ApiDemos y la anchura del trazo se establece en 6 allí. Cuando mido el ancho en la pantalla de mi teléfono móvil hdpi es 9px. Parece que el valor de ancho de trazo inicial se multiplica por la densidad. ¿Debo proporcionar el valor dividido por densidad para obtener un ancho real? – Zzokk
No creo que la respuesta de Romain sea correcta. En mi dispositivo de prueba actual (HTC One X, con densidad de 2.0) he encontrado que '.setStrokeWidth()' debe llamarse con el ancho de carrera deseado dividido por 1.5. Entonces, el ancho es exactamente como debería ser. De lo contrario, es demasiado ancho. El factor 1.5 está de acuerdo exactamente con lo que encontró Zzokk (6px frente a 9px), excepto que cuestiono si está relacionado con la densidad, porque One X es 2.0, no 1.5. Entonces, el origen de este factor 1.5 me deja perplejo en este momento. – Trevor
Maldita sea! Solo vine aquí para resolver esta duda. Vi a @Romain Guy respondiendo y pensé "Tenemos la respuesta segura", pero en los comentarios no parece tan fácil. De todos modos, he intentado lidiar con esto como si fuera en píxeles como la conversión de dp a píxeles ... y parece estar funcionando para diferentes tamaños de pantalla ... – Sotti