Dibujar una línea con un cierto ancho de píxel

Me gustaría mostrar datos X / Y en un lienzo usando líneas con un cierto ancho (en píxeles, o "dp" idealmente). He intentado el método setStrokeWidth (…) de Paint, y eso efectivamente cambia el ancho de línea pero no es lo que necesito. En mi caso he escalado mi lienzo a "unidades de Ingeniería reales" usando matrix.preScale (xScale, yScale) para que la escala X represente de 0 a 100 y la Y sea 0 a 1. El método setStrokeWidth () del objeto Paint Para ajustar el trazo de modo que siga mis ajustes de matriz preScale (). En otras palabras, las líneas horizontales se dibujan muy delgadas, y las líneas verticales se dibujan muy gruesas.

¿Hay una manera de configurar la pintura de modo que no importa qué dirección se dibuja la línea, su anchura es un número constante de pixeles?

He intentado definir un dibujable que es una línea, y hacer un ShapeDrawable de eso, y luego aplicarlo a la pintura, pero se encontró con algunos desagradables errores de casting de clase en tiempo de ejecución. Esto me hizo pensar que este era el camino equivocado para hacerlo. Pero tal vez me di por vencido demasiado pronto.

Entiendo que hay una serie de paquetes de trazado de Android disponibles, algunos con fuente, pero realmente estoy buscando entender la plataforma aquí, en lugar de usar una solución de terceros.

Gracias por cualquier sugerencia! Rico

Por ejemplo en Android: paint.setStrokeWidth (3); Este método establece el ancho de línea. En este caso, el ancho de línea es de 3 píxeles. Estoy buscando como este método en BlackBerry.

Prueba esto :

Graphics.setColor(Color.RED); Graphics.setStrokeWidth(20); Graphics.drawRect(0, 0, 100, 100); 

Están disponibles en el paquete net.rim.device.api.ui.Graphics.

Tuve que hacer algo similar al dibujar superposiciones en un mapa.

Como el usuario puede usar el multitáctil para escalar el mapa dinámicamente, al entrar en la rutina de dibujo, calculo un factor de escala para los ejes xyy, lo aplico al lienzo, dibujo el mapa, luego invierte este factor de escala y lo aplico A los anchos de línea para las superposiciones. Por lo tanto, el lienzo se escala y las superposiciones se escalan, a continuación, anti-escala, por lo que son en efecto ancho fijo.

Me pareció que esto funciona muy bien sin éxito de rendimiento real.

  • Cómo blit () en android?
  • Cómo rotar un lienzo en un punto específico usando android.graphics.Camera.rotateX (angle)
  • Cómo dibujar una porción de mapa de bits a través de lienzo DrawBitmap
  • Cómo corregir "lienzo: intentando utilizar un error de mapa de bits reciclado"?
  • ¿Cómo configurar un filtro de color para XWalkView? (Resuelto)
  • Dibuja el texto dentro de un rectángulo relleno mediante el uso de Canvas Android
  • Android: ¿Cómo manejar el dibujo con métodos de lienzo en diferentes tamaños de pantalla?
  • Dibuja un camino curvo en la lona?
  • Tabla de Donuts Android
  • Dibujo sobre lienzo - PorterDuff.Mode.CLEAR dibuja negro! ¿Por qué?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.