继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

纯血鸿蒙来画龙!基于HarmonyOS ArkTS来操作SVG图片

2024-02-21 18:10:151408浏览

老卫

2实战 · 249手记 · 2推荐
TA的实战

大家好,龙年报喜,大地回春,作为程序员,以代码之名,表达对于龙年的祝福。本节将演示如何在基于HarmonyOS ArkTS的Image组件来实现画一条中国龙,祝大家“码”上“鸿”福到!

本文涉及的所有源码,均可以在文末链接中找到。

创建应用

选择空模板。

https://img1.sycdn.imooc.com/65d5cb4600010ada05540372.jpg



创建名为ArkTSSVGChineseLoong的HarmonyOS应用。

https://img1.sycdn.imooc.com/65d5cb4e0001888308310558.jpg


核心代码讲解

首先是准备SVG图片资源chineseloong.svg,放置media目录下。图片是这样的


https://img1.sycdn.imooc.com/65d5cb4d000199ea04060453.jpg

主页Index.ets 主要是使用了Image来实现SVG图片显示。

代码如下:


@Entry
@Component
struct Index {
  @State message: string = '画龙迎春,“码”上“鸿”福到';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(26)
          .fontWeight(FontWeight.Bold)
        Image($r('app.media.chineseloong'))
          .height(390)
          .width(330)
      }
      .width('100%')
    }
    .height('100%')
  }
}复制


当然,此时的龙,还是一条睡着的黑龙,效果如下:

https://img1.sycdn.imooc.com/65d5cb950001968a03180661.jpg

如何来唤醒呢?可以加个按钮事件。


Button('画龙')
          .onClick(()=>{            // 点击变化颜色
            if (this.fillColor == Color.Black) {              this.fillColor = Color.Red;
            } else if (this.fillColor == Color.Red) {            this.fillColor = Color.Blue;
            }else if (this.fillColor == Color.Blue) {              this.fillColor = Color.Orange;
            }else if (this.fillColor == Color.Orange) {              this.fillColor = Color.Pink;
            }else if (this.fillColor == Color.Pink) {              this.fillColor = Color.Black;
            }
          })复制



上述按钮事件,实现了颜色的切换。

其中fillColor是一个颜色变量,默认是黑色。


@State fillColor: Color = Color.Black;复制

我们把fillColor变量赋值到Image组件上。


Image($r('app.media.chineseloong'))
          .height(390)
          .width(330)
          .fillColor(this.fillColor)复制


效果演示

https://img1.sycdn.imooc.com/65d5cbcd0001f2da04800713.jpg

B站视频:https://www.bilibili.com/video/BV1Tz421R7Rq/

源码

见:https://github.com/waylau/harmonyos-tutorial


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP