Cómo enmascarar Bitmap con el sombreado LinearGradient correctamente?
Estoy tratando de enmascarar Bitmap con gradiente alfa en la parte inferior. El tamaño de degradado es fijo e independiente del tamaño de mapa de bits. Pero dibuja incorrecto: parte inferior del gradiente en la parte superior, que la parte superior. ¿Qué pasa?
- ¿Por qué esto no funciona a veces?
- Bitmap setPixels perderá el canal alfa cuando el fondo sea negro
- Cómo redimensionar un mapa de bits eficientemente y sin perder calidad en android
- Cómo obtener un mapa de bits de VectorDrawable
- Android: mapa de bits baja escala de baja calidad
Hay código de ejemplo:
final int GRADIENT_HEIGHT = 32; public Bitmap addGradient(Bitmap src) { int w = src.getWidth(); int h = src.getHeight(); Bitmap overlay = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(overlay); canvas.drawBitmap(src, 0, 0, null); Paint paint = new Paint(); LinearGradient shader = new LinearGradient(0, 0, 0, GRADIENT_HEIGHT, 0xFFFFFFFF, 0x00FFFFFF, TileMode.REPEAT); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); canvas.drawRect(0, h - GRADIENT_HEIGHT, w, h, paint); return overlay; }
¡Gracias!
- Cómo guardar un mapa de bits en el almacenamiento interno
- problema en el uso de mapa de bits en android
- Extremadamente lento nSyncAndDrawFrame al dibujar grandes mapas de bits
- MAT (Eclipse Memory Analyzer) - cómo ver los mapas de bits del volcado de memoria
- Cómo imprimir una imagen con el tamaño de papel completo (80MM) en la impresora térmica (EPSON)
- Escala de mapa de bits Android RemoteControlClient
- Convertir archivo de mapa de bits inmutable a mutable Bitmap
- Android: gira la imagen en ImageView por 90degrees pero sin demora
Cambie su LinearGradient a esto:
LinearGradient shader = new LinearGradient(0, h - GRADIENT_HEIGHT, 0, h, 0xFFFFFFFF, 0x00FFFFFF, Shader.TileMode.CLAMP);
- Cómo convertir nombres de color a su código hexadecimal equivalente?
- Mejores prácticas de Android: vistas / actividades