No se puede usar el valor argb color int en Kotlin?

Cuando quiero animar el textColor de TextView en Kotlin:

 val animator = ObjectAnimator.ofInt(myTextView, "textColor", 0xFF8363FF, 0xFFC953BE) 

este error se produce:

 Error:(124, 43) None of the following functions can be called with the arguments supplied: public open fun <T : Any!> ofInt(target: TextView!, xProperty: Property<TextView!, Int!>!, yProperty: Property<TextView!, Int!>!, path: Path!): ObjectAnimator! defined in android.animation.ObjectAnimator public open fun <T : Any!> ofInt(target: TextView!, property: Property<TextView!, Int!>!, vararg values: Int): ObjectAnimator! defined in android.animation.ObjectAnimator public open fun ofInt(target: Any!, propertyName: String!, vararg values: Int): ObjectAnimator! defined in android.animation.ObjectAnimator public open fun ofInt(target: Any!, xPropertyName: String!, yPropertyName: String!, path: Path!): ObjectAnimator! defined in android.animation.ObjectAnimator public open fun ofInt(vararg values: Int): ValueAnimator! defined in android.animation.ObjectAnimator 

Parece que el valor 0xFF8363FF y 0xFFC953BE no se puede convertir en Int en Kotlin, sin embargo, es normal en Java:

 ObjectAnimator animator = ObjectAnimator.ofInt(myTextView, "textColor", 0xFF8363FF, 0xFFC953BE); 

¿Algunas ideas? Gracias por adelantado.

0xFF8363FF (así como 0xFFC953BE ) es un Long , no un Int .

Tienes que Int a Int explícitamente:

 val animator = ObjectAnimator.ofInt(myTextView, "textColor", 0xFF8363FF.toInt(), 0xFFC953BE.toInt()) 

El punto es que el valor numérico de 0xFFC953BE es 4291384254 , por lo que debe almacenarse en una variable Long . Pero el bit alto aquí es un bit de signo, que denota un número negativo: -3583042 que puede almacenarse en Int .

Y esa es la diferencia entre dos idiomas. En Kotlin debe añadir el signo - para denotar negativa Int que no es cierto en Java :

 // Kotlin print(-0x80000000) // >>> -2147483648 (fits into Int) print(0x80000000) // >>> 2147483648 (does NOT fit into Int) // Java System.out.print(-0x80000000); // >>> -2147483648 (fits into Integer) System.out.print(0x80000000); // >>> -2147483648 (fits into Integer) 
  • Diseño sintético y personalizado de Kotlin en DialogFragment
  • Kotlin uso perezoso
  • ¿Cómo utilizar Android Support typedef anotaciones en kotlin?
  • Android Kotlin: Error Referencia sin resolver: DaggerAppComponent
  • Kotlin-android: enlace de datos de referencia no resuelto
  • Reglas de ProGuard para la reflexión de Kotlin
  • Android databinding error de prueba de unidad Error al analizar las opciones del compilador de enlace de datos. Params:
  • La instalación del proyecto Android de Kotlin falla con INSTALL_FAILED_DEXOPT
  • Crear una instancia de una clase abstracta en Kotlin
  • JaCoCo devuelve 0% de cobertura con Kotlin y Android 3.0
  • Operador == no se puede aplicar a 'Long' y 'Int' en Kotlin
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.