gpt4 book ai didi

android - 在 kotlin 中创建 LayerDrawable 时发生类转换异常

转载 作者:行者123 更新时间:2023-11-29 18:47:33 31 4
gpt4 key购买 nike

我现在在 kotlin 上重写我的旧 java 代码,我有一个问题,我需要这段代码的 kotlin 模拟:

Drawable[] layers = new Drawable[]{
colorDrawable,
border
};

LayerDrawable drawable = new LayerDrawable(layers);

在 Kotlin 我现在有:

val border = GradientDrawable()
border.shape = GradientDrawable.RECTANGLE
border.setStroke(CommonsUtils.dpToPx(holder.itemView, 1), Color.parseColor("#DEDEDE"))
border.cornerRadius = CommonsUtils.dpToPx(holder.itemView, 2).toFloat()

val colorDrawable = try {
Color.parseColor(color.hex)
} catch (e: Exception) {
e.printStackTrace()
ColorDrawable(Color.parseColor("#FFFFFF"))
}

val layers = arrayOf(colorDrawable, border)
val drawable = LayerDrawable(layers as Array<out Drawable>)

但是 arrayOf 返回“Any”数组而不是“out Drawable”数组,并且我将类强制转换为 Object[] 到 Drawable[]。

最佳答案

更改为:

val colorDrawable = try {
ColorDrawable(Color.parseColor(color.hex))
} catch (e: Exception) {
e.printStackTrace()
ColorDrawable(Color.parseColor("#FFFFFF"))
}

Color.parseColor(color.hex) 返回 int 而不是 Drawable

关于android - 在 kotlin 中创建 LayerDrawable 时发生类转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51475487/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com