ventajas vectoriales usos programas para mapa imagenes imagen formatos edicion desventajas cuadro comparativo caracteristicas android android-canvas antialiasing

android - usos - programas para la edicion de imagenes vectoriales



Dibuja mapas de bits suavemente escalados en lienzo (4)

Así es como dibujo Bitmap en Canvas en mi aplicación de Android:

canvas.save(); canvas.scale(scale, scale, x, y); canvas.drawBitmap(bitmap, x, y, null); canvas.restore();

Sin embargo, el Bitmap no se escala correctamente, no se realiza ningún suavizado. ¿Cómo puedo habilitar anti-aliasing?



Ambos Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG); o paint.setFilterBitmap(true); funcionó para mí pero ten mucho cuidado, en mi juego redujo el FPS de 30FPS a 17FPS solamente. Entonces, si se trata de un dibujo de misión crítica como en un juego, es mejor escalar la imagen en el momento de la carga. Lo que hice de la siguiente manera:

public Bitmap getImage (int id, int width, int height) { Bitmap bmp = BitmapFactory.decodeResource( getResources(), id ); Bitmap img = Bitmap.createScaledBitmap( bmp, width, height, true ); bmp.recycle(); return img; }


Prueba esto:

Paint paint = new Paint(); paint.setAntiAlias(true); paint.setFilterBitmap(true); paint.setDither(true); canvas.drawBitmap(bitmap, x, y, paint);


Utilizar:

canvas.drawBitmap(source, 0, 0, new Paint(Paint.ANTI_ALIAS_FLAG));