usar snapseed profesionales para google fotos filtros efectos editar descargar como color celular aplicaciones agregar android android-imageview porter-duff

android - snapseed - Quiero añadir un filtro de color a la vista de imagen.



filtros para fotos (5)

En su archivo xml puede tintar 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 un filtro de color mediante programación, utilice

scratchImage_2.setColorFilter(Color.BLACK);

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

scratchImage_2.setColorFilter(null);

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 , como SRC_IN , SRC , etc., pero no SRC_IN ninguna diferencia en ninguno de los modos ... Todos los modos convierten a todo el ImageView en un color rojo perfecto.

Necesito mezclar el color ROJO en la imagen existente para que la imagen se vea con un matiz ROJO ...


Esto funcionó para mí:

en res / colors.xml:

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

en su actividad inicialice el filtro y resalte la 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);

Luego aplique el filtro al ImageView:

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

Si eso no funciona, intente aplicar a ImageView drawable:

iv.getDrawable().setColorFilter(redHighLight);

Espero que ayude.


La forma correcta de hacerlo fue usando PorterDuff.Mode.LIGHTEN .

Entonces el código actualizado será como:

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


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

Yo uso 155 como valor alfa:

final int semiTransparentGrey = Color.argb(155, 185, 185, 185); drawable.setColorFilter(semiTransparentGrey, PorterDuff.Mode.SRC_ATOP);


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" />