有color:'Color.Red',但是在Image().fillColor(this.color)中颜色并没有显示出来(HarmonyOS 鸿蒙Next)

有color:‘Color.Red’,但是在Image().fillColor(this.color)中颜色并没有显示出来(HarmonyOS 鸿蒙Next) 新建了接口:

interface Images {
  url:string
  count:number
  color:string
}

也声明了数组:

@State images : Images[] = [
  {url:'app.media.ic_public_view_grid',count:1,color:'#faff0000'},
  {url:'app.media.ic_public_view_grid',count:2,color:'Color.Orange'},
  {url:'app.media.ic_public_view_grid',count:3,color:'Color.Yellow'},
  {url:'app.media.ic_public_view_grid',count:5,color:'Color.Green'},
  {url:'app.media.ic_public_view_grid',count:6,color:'Color.Blue'},
  {url:'app.media.ic_public_view_grid',count:7,color:'Color.Grey'}
]

但是用在图片上的时候,发现只有第一个的颜色显示了:

Image($r(item.url))
  .fillColor(item.color)

是因为this.color代替的字符串形式的“Color.Red”跟Image(Color.Red)中的Color.Red不一样吗


更多关于有color:'Color.Red',但是在Image().fillColor(this.color)中颜色并没有显示出来(HarmonyOS 鸿蒙Next)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

你的images数组里color是字符串类型,当以字符串类型设置color时只支持十六进制(’#ff0000’)和rgb(‘rgb(255,0,0)’)这两种形式,像你上面在字符串中写枚举是识别不了的。

更多关于有color:'Color.Red',但是在Image().fillColor(this.color)中颜色并没有显示出来(HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


fillColor中的Color.Red 是一个官方定义的Color枚举类型

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

是的,你可以把接口中的color定义为联合类型color: String | Color,然后在数据中传值时color:Color.Red,不要加单引号

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

项目名称

  • 状态:已上线
  • 技术栈:Python, JavaScript, HTML, CSS
  • GitHub项目链接

描述

这是一款多功能工具,支持多种操作。

类型不对,`fillColor`的参数类型是 `ResourceColor` = `Color` | `number` | `string` | `Resource`,`String`类型用十六进制、`RGB`、`RGBA`等方式表示,你这种`'Color.Red'`写法是错误的

所以我的color:"Color.Red"这样的写在fillColor()中会被认为是String类型而不是Color吗,也就是说fillColor(Color.Red)中的Color.Red并不是一个字符串吗,

在HarmonyOS鸿蒙Next中,若使用color: Color.Red并在Image().fillColor(this.color)中颜色未显示,可能是由于颜色值传递或解析问题。Color.Red应直接传递为颜色对象,而非字符串。正确写法应为color: Color.Red,确保fillColor方法接收的是颜色对象而非字符串。检查代码确保颜色值正确传递。

回到顶部