Mientras trabajaba con el diseño xml de Android, encontré el backgroundTintatributo. No entiendo para qué sirve.
¿También qué es backgroundTintMode?
Mientras trabajaba con el diseño xml de Android, encontré el backgroundTintatributo. No entiendo para qué sirve.
¿También qué es backgroundTintMode?
Respuestas:
Probé varias combinaciones de android:background, android:backgroundTinty android:backgroundTintMode.
android:backgroundTintaplica el filtro de color al recurso de android:backgroundcuando se usa junto con android:backgroundTintMode.
Aquí están los resultados:
Aquí está el código si desea experimentar más:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:background="#37AEE4"
android:text="Background" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:backgroundTint="#FEFBDE"
android:text="Background tint" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:background="#37AEE4"
android:backgroundTint="#FEFBDE"
android:text="Both together" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:background="#37AEE4"
android:backgroundTint="#FEFBDE"
android:backgroundTintMode="multiply"
android:text="With tint mode" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:text="Without any" />
</LinearLayout>
android:backgroundpropiedad debe estar configurada para android:backgroundTintque sea visible en TextView. En el caso del Button, supongo que ya tiene algún tipo de fondo / color establecido por el marco.
El backgroundTintatributo le ayudará a agregar un tinte (sombra) al fondo. Puede proporcionar un valor de color para el mismo en forma de:"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Por backgroundTintModeotro lado, te ayudará a aplicar el tinte de fondo. Debe tener valores constantes como src_over, src_in, src_atop,etc.
Consulte esto para tener una idea clara de los valores constantes que se pueden utilizar. La búsqueda del backgroundTintatributo y la descripción junto con varios atributos estarán disponibles.
No insistiré mucho en la diferencia, ya que ya está cubierta, pero observe lo siguiente:
android:backgroundTint android:backgroundTintMode solo están disponibles en API 21android:backgroundy desea cambiar su color predeterminado, puede usarlo android:backgroundTintpara agregarle un tono.ejemplo
<Button
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_dialog_email" />
<Button
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_dialog_email"
android:backgroundTint="@color/colorAccent" />
Otro ejemplo
Si intenta cambiar el color de acento del FloatingActionButtonuso android:background, no notará ningún cambio, es porque ya se está utilizando app:srcCompat, por lo que para hacerlo puede usar android:backgroundTinten su lugar
Modo de fusión utilizado para aplicar el tinte de fondo.
Tinte para aplicar al fondo. Debe ser un valor de color, en forma de
#rgb,#argb,#rrggbb, o#aarrggbb.Esto también puede ser una referencia a un recurso (en la forma "@ [paquete:] tipo: nombre") o atributo de tema (en la forma "? [Paquete:] [tipo:] nombre") que contiene un valor de este tipo .
android:backgroundTintsinandroid:background, este segundo TextView no cambia nada. Sin embargo, lo intentoandroid:backgroundTinten Button, el color del botón parece el mismo color de backgroundTint que configuré. ¿Podrías explicar estos casos?