Kotlin 到 Java(库帮助)

伊桑·帕特尔

我正在使用这个库来生成渐变:https : //github.com/revely-inc/co.revely.gradient

为渐变设置动画的 kotlin 代码如下:

val color1 = Color.parseColor("#00c6ff")
val color2 = Color.parseColor("#ff72ff")

val valueAnimator = ValueAnimator.ofFloat(0f, 360f)
valueAnimator.duration = 15000
valueAnimator.repeatCount = ValueAnimator.INFINITE
valueAnimator.interpolator = LinearInterpolator()
RevelyGradient.sweep()
    .colors(intArrayOf(color1, color2, color1))
    .animate(valueAnimator, { _valueAnimator, _gradientDrawable ->
         _gradientDrawable.angle = _valueAnimator.animatedValue as Float
    })
    .onBackgroundOf(container)
valueAnimator.start()

到目前为止我得到的java代码:

ValueAnimator valueAnimator = new ValueAnimator();
                        valueAnimator.ofFloat(0f, 360f);
                        valueAnimator.setDuration(15000);
                        valueAnimator.setRepeatCount(ValueAnimator.INFINITE);
                        valueAnimator.setInterpolator(new LinearInterpolator());
                        RevelyGradient.sweep()
                                .colors(new int[] {Color.parseColor("#FF2525"), Color.parseColor("#6078EA")})
                                .animate(valueAnimator, { _valueAnimator, _gradientDrawable ->
                                        _gradientDrawable.angle = _valueAnimator.animatedValue as Float
                                })
                                .onBackgroundOf(rootView);
                        valueAnimator.start();

正如您所注意到的,我无法转换它(因为它对 kotlin 局外人没有意义):

{ _valueAnimator, _gradientDrawable ->
   _gradientDrawable.angle = _valueAnimator.animatedValue as Float
   }

在这里应该做什么?

错误:

要求:'kotlin.jvm.functions.Function2?超级 android.animation.ValueAnimator,?super co.revely.gradient.drawables.Gradient,kotlin.Unit>

杰克大师

这是一个匿名函数(一个“lambda 表达式”)。看起来RevelyGradient.animate()需要两个参数:

  1. 一个ValueAnimator
  2. 一个函数:一个以 ValueAnimator 和Gradient作为参数并且不返回任何有用信息的函数。(它返回一个Unit。)

在您传入的特定函数中,Gradient 的angle属性是从 ValueAnimator 的 animationValue属性设置的在赋值之前被转换为Float)。

那么你如何用 Java 重写它呢?由于这是一个 Android 问题,您需要为您正在处理的模块启用 Java 8 语言功能然后你应该能够重写那行代码,看起来像这样:

RevelyGradient
    .animate(valueAnimator,
            (_valueAnimator, _gradientDrawable) -> {
               _gradientDrawable.setAngle((Float) _valueAnimator.getAnimatedValue());
               return Unit.INSTANCE;
            });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Java到Kotlin

来自分类Dev

LibGDX动画Java到Kotlin

来自分类Dev

将Kotlin库(非Android)发布到jCenter

来自分类Dev

将Kotlin库(非Android)发布到jCenter

来自分类Dev

从Java到Kotlin:同步和锁定/等待/通知模式

来自分类Dev

Kotlin\Java - 像 "$1" 这样的字符串到数字

来自分类Dev

没有通配符的 Kotlin 泛型到 Java

来自分类Dev

Kotlin Arraylist 到 Java Arraylist 的类型不匹配

来自分类Dev

需要帮助将JS移植到Java

来自分类Dev

需要帮助将JS移植到Java

来自分类Dev

将对象存储到数组帮助Java

来自分类Dev

从 Json 到 Kotlin 数据类

来自分类Dev

将单个Kotlin + libgdx代码库部署到Android,台式机和浏览器?

来自分类Dev

使用Kotlin Native,构建Windows exe,我可以将库(dll)捆绑到exe中吗?

来自分类Dev

将单个Kotlin + libgdx代码库部署到Android,台式机和浏览器?

来自分类Dev

从 Firebase(实时数据库)检索数据到列表中(Kotlin)

来自分类Dev

Apache库到标准Java

来自分类Dev

更新地图时,无法将地图从Java传递到Kotlin

来自分类Dev

Java 泛型到 Kotlin 泛型。从方法返回泛型

来自分类Dev

Java库,用于Java到EDI的转换

来自分类Dev

Kotlin 嵌套 for 循環到 asSequence

来自分类Dev

无法使用 kotlin 库

来自分类Dev

需要 JSON 到 PowerShell 帮助

来自分类Dev

从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

来自分类Dev

如何从Android Kotlin协程获取结果到UI线程

来自分类Dev

Kotlin从generateSequence()到flow(),但是生成了错误的字节码

来自分类Dev

FireStore和地图/阵列,文档列表到Kotlin中的阵列

来自分类Dev

正则表达式从Python到Kotlin

来自分类Dev

可打包对象到Kotlin的可打包对象列表

Related 相关文章

  1. 1

    从Java到Kotlin

  2. 2

    LibGDX动画Java到Kotlin

  3. 3

    将Kotlin库(非Android)发布到jCenter

  4. 4

    将Kotlin库(非Android)发布到jCenter

  5. 5

    从Java到Kotlin:同步和锁定/等待/通知模式

  6. 6

    Kotlin\Java - 像 "$1" 这样的字符串到数字

  7. 7

    没有通配符的 Kotlin 泛型到 Java

  8. 8

    Kotlin Arraylist 到 Java Arraylist 的类型不匹配

  9. 9

    需要帮助将JS移植到Java

  10. 10

    需要帮助将JS移植到Java

  11. 11

    将对象存储到数组帮助Java

  12. 12

    从 Json 到 Kotlin 数据类

  13. 13

    将单个Kotlin + libgdx代码库部署到Android,台式机和浏览器?

  14. 14

    使用Kotlin Native,构建Windows exe,我可以将库(dll)捆绑到exe中吗?

  15. 15

    将单个Kotlin + libgdx代码库部署到Android,台式机和浏览器?

  16. 16

    从 Firebase(实时数据库)检索数据到列表中(Kotlin)

  17. 17

    Apache库到标准Java

  18. 18

    更新地图时,无法将地图从Java传递到Kotlin

  19. 19

    Java 泛型到 Kotlin 泛型。从方法返回泛型

  20. 20

    Java库,用于Java到EDI的转换

  21. 21

    Kotlin 嵌套 for 循環到 asSequence

  22. 22

    无法使用 kotlin 库

  23. 23

    需要 JSON 到 PowerShell 帮助

  24. 24

    从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

  25. 25

    如何从Android Kotlin协程获取结果到UI线程

  26. 26

    Kotlin从generateSequence()到flow(),但是生成了错误的字节码

  27. 27

    FireStore和地图/阵列,文档列表到Kotlin中的阵列

  28. 28

    正则表达式从Python到Kotlin

  29. 29

    可打包对象到Kotlin的可打包对象列表

热门标签

归档