Quiero agregar un filtro de color a la vista de la imagen

Me gustaría agregar un ColorFilter a ImageView .

Actualmente estoy usando:

 ImageView iv = (ImageView)findViewById(resIdOfImageToFilter); iv.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP); 

He comprobado los modos múltiples en PotterDuff tales como SRC_IN , SRC etc., pero no estoy consiguiendo ninguna diferencia en ninguno de los modos … Todo el modo da vuelta al ImageView entero en color rojo perfecto.

Necesito mezclar el color ROJO en la imagen existente de modo que la imagen mire con un tinte de REDDISH ….

La forma correcta de hacerlo era usar PorterDuff.Mode.LIGHTEN .

Así que el código actualizado será como:

 ImageView iv = (ImageView)findViewById(resIdOfImageToFilter); iv.setColorFilter(Color.RED, PorterDuff.Mode.LIGHTEN); 

Esto funcionó para mí:

En res / colors.xml:

 <color name="highlight_color_filter">#A5FF0000</color> 

En su Actividad inicializar el filtro y resaltar pintura:

 int highlightColor = context.getResources().getColor(R.color.highlight_color_filter); PorterDuffColorFilter colorFilter = new PorterDuffColorFilter(highlightColor, PorterDuff.Mode.SRC_ATOP); Paint redHighLight = new Paint(); redHighLight.setColorFilter(targetHitFilter); redHighLight.setAlpha(190); 

A continuación, aplique el filtro en el ImageView:

 ImageView iv=(ImageView)findViewById(ResIdOfImageToFilter); iv.setColorFilter(redHighLight); 

Si eso no funciona intente aplicar al ImageView dibujable:

 iv.getDrawable().setColorFilter(redHighLight); 

Espero que ayude.

Puedes usar android: tint ( link ) en tu archivo xml. Ejemplo:

 <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/your_drawable" android:tint="@color/your_color" /> 

Otra solución, podría haber mantenido el modo PorterDuff.Mode.SRC_ATOP y usar otro alfa para tener un color transparente.

Utilizo 155 como valor de Alpha.

En tu archivo xml puedes usar el tinte del usuario Por ejemplo

  <ImageView android:id="@+id/scrachImage_1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:tint="@color/colorAccent" android:src="@drawable/eagle" /> 

Si desea agregar filtro de color mediante programación, utilice

 scratchImage_2.setColorFilter(Color.BLACK); 

También puede eliminar este filtro de color usando este código:

scratchImage_2.setColorFilter(null);

  • Android: Circular Dibujable
  • Dibuja un círculo transparente sobre un lienzo lleno de android
  • ¿Cómo crear una máscara para una superposición transparente?
  • ¿Cómo puedo hacer una aplicación de rompecabezas en droid sin quedarme sin memoria?
  • Porter-Duff: ¿comportamiento diferente para diferentes formas?
  • Enmascarar (recortar) la imagen en el marco
  • DrawBitmap al lienzo con un mapa de bits transparente, reemplace los píxeles originales
  • Android Porter-Duff Composición de rendimiento
  • Efectos de color PorterDuff en android para vistas bajo una vista determinada
  • Perforar un agujero en una superposición de rectángulo con aceleración HW activada en Ver
  • Android personalizado XferMode / PorterDuff.Mode
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.