Sub SetBorderColorAnimated(lblview As Label, duration As Long, toColor As Int)
Dim jo As JavaObject = lblview
Dim initialColor As Int = xui.Color_Transparent
borderDrawable.InitializeNewInstance("android.graphics.drawable.GradientDrawable", Null)
borderDrawable.RunMethod("setShape", Array(0))
borderDrawable.RunMethod("setStroke", Array(5dip, initialColor))
jo.RunMethod("setBackground", Array(borderDrawable))
Dim clrs(2) As Int
clrs(0) = initialColor
clrs(1) = toColor
Dim animator As JavaObject
animator.InitializeStatic("android.animation.ValueAnimator")
animator = animator.RunMethod("ofArgb", Array As Object(clrs))
animator.RunMethod("setDuration", Array As Object(duration))
Dim wrapper As JavaObject
wrapper = animator.CreateEvent("android.animation.ValueAnimator.AnimatorUpdateListener", "AnimationUpdate", borderDrawable)
animator.RunMethod("addUpdateListener", Array(wrapper))
animator.RunMethod("start", Null)
End Sub
Sub AnimationUpdate_Event (Tag As Object, Args() As Object) As Object
Dim valueAnimator As JavaObject = Args(0)
Dim animValue As Int = valueAnimator.RunMethod("getAnimatedValue", Null)
borderDrawable.RunMethod("setStroke", Array(5dip, animValue))
End Sub