Cambio de lienzo de Android algunos píxeles de color
Tengo un objeto Canvas
al inicio. Necesito cambiar el color de algunos pixeles dependiendo de su color actual. ¿Cómo puedo hacer eso de una manera apropiada?
Detalles:
- Cómo obtener las coordenadas XY y el tamaño de píxeles de un TextView?
- ¿Diferentes diseños para diferentes tamaños de pantalla en Android?
- Tamaño de la imagen de fondo Android en píxeles
- Cuando establezco MinimumHeight, ¿qué unidades estoy usando?
- Cómo obtener el ancho de imagen que se ha escalado
Tengo mi propia clase extendida de ImageView
. En el onDraw(Canvas canvas)
dibujo algo con una clase de terceros y solo tengo un objeto Canvas
con resultado. Necesito después de que cambie el color de algunos pixeles dependiendo de su color actual.
- ¿Cómo puedo traducir correctamente coordenadas de píxeles a coordenadas de lienzo en Android?
- Píxeles a las inmersiones, al escritorio y al android
- Android especificando unidades de píxeles (como sp, px, dp) sin utilizar XML
- ¿Cómo obtener 1: 1 píxeles en el emulador de Android?
- Cómo obtener color en el punto (o píxel) de una imagen en evento táctil en android
Suponiendo que tiene el objeto android.graphics.Canvas
denominado canvas
y X
e Y
son puntos en los que desea cambiar píxeles, así que aquí tienes
Llamada :
canvas.drawPoint(X, Y, paint);
Aquí está cómo usted initalize el objeto de la clase android.graphics.Paint
es decir la pintura
Paint paint = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.WHITE);
Busca más en este enlace para cambiar varios píxeles en diferentes posiciones, hay muchas funciones que te ayudarán a lograr lo que quieres. La mejor de las suertes 🙂
Probablemente hay una docena de maneras de hacer esto. Si desea realizar el método Canvas, hay una forma de dibujar un objeto Bitmap. A continuación, puede dibujar el objeto a otro lienzo. El objeto Bitmap también puede tener funciones para modificar píxeles.
Bitmap también le permite obtener una copia en un búfer, y si sabe cómo se almacenan los píxeles, sería una forma muy rápida de manipulación de imágenes. No estoy seguro de si Canvas tiene eso
Recomiendo que busque una forma más rápida de establecer un color de mapa de bits (PNG) en lugar de píxel por píxel . Tiene código para obtener y establecer colores de mapa de bits píxel a píxel (en la pregunta), así como una sugerencia para una alternativa a un enfoque píxel por píxel (en la respuesta). También posiblemente útil: Explicación del método getPixels para un mapa de bits en Android .