Extensión Kotlin para obtener colores de los recursos en Android


La froma más simple para obtener el color definido en colors.xml es mediante una extensión de Kotlin

Obtener color definido en colors.xml

Context.getColorCompat una extensión de kotlin para obtener el color desde un recurso Android

fun Context.getColorCompat(@ColorRes id: Int) = ContextCompat.getColor(this, id)

Su uso

Para obtener el color desde su identificador de la tabla Resource

val color = this.getColorCompat(R.color.black)

Des de un fragmento se usa el requireContext()

val color = requireContext().getColorCompat(R.color.black)

Obtener color definido en un atributo

Hay algunos colores que se establecen mediante atributos, para poder obtener su color mediante Kotlin

@ColorInt
fun Context.getColorFromAttr(@AttrRes attrColor: Int
): Int {
    val typedArray = theme.obtainStyledAttributes(intArrayOf(attrColor))
    val textColor = typedArray.getColor(0, 0)
    typedArray.recycle()
    return textColor
}

Su uso

context.getColorFromAttr(android.R.attr.textColorSecondary)
Anuncio publicitario

Publicado por Codelaby

Mobile DevDesigner

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: