HarmonyOS 鸿蒙Next ArkUI入门训练营—健康生活实战 邮印象ArkUI版

HarmonyOS 鸿蒙Next ArkUI入门训练营—健康生活实战 邮印象ArkUI版 #HarmonyOS ArkUI入门训练营—健康生活实战#邮印象ArkUI版

一、背景

1、项目简介

邮印象是一个为用户提供照片冲印、相册、照片书、同学录、文化衫、马克杯、个性邮册等几十款产品个性化定制服务的C2B平台,是一个基于传统函件特有产品及寄递优势,利用互联网手段,满足用户通过实物介质实现情感纪念与传递的线上平台。

2、程序介绍

邮印象ArkUI版是基于邮印象项目,使用HarmonyOS ArkUI开发的HarmonyOS应用程序。在学习了《HarmonyOS ArkUI入门训练营之健康生活实战》后,结合邮印象本身的个性化定制功能进行ArkUI的开发。目前版本的功能还比较初步,后续有机会会继续完善开发。

二、功能

1、启动动画页面

启动动画页面

核心代码:

Shape() {
    Path()
      .commands(this.leftPath)
      .fill('none')
      .linearGradient({ angle: 90, colors: [['#fd0c20', 0], ['#ffffff', 1]] })
      .clip(new Path().commands(this.leftPath))

    Path()
      .commands(this.leftBottomPath)
      .fill('none')
      .linearGradient({ angle: 50, colors: [['#8d0c20', 0.1], ['#fd0c20', 0.4], ['#ffffff', 0.7]] })
      .clip(new Path().commands(this.leftBottomPath))
  }
  .height(210)
  .width(210)
  .scale({ x: this.scaleValue, y: this.scaleValue })
  .opacity(this.opacityValue)
  .onAppear(() => {
    animateTo({
      duration: 1000,
      curve: curves.cubicBezier(0.4, 0, 1, 1),
      delay: 100,
      onFinish: () => {
        setTimeout(() => {
          router.replace({ uri: 'pages/index' })
        }, 1000)
      }
    }, () => {
      this.opacityValue = 1
      this.scaleValue = 1
    })
  })

  Text($r("app.string.entry_MainAbility"))
    .fontSize(26)
    .fontColor(Color.White)
    .margin({ top: 300 })

  Text($r("app.string.mainability_description"))
    .fontSize(17)
    .fontColor(Color.White)
    .margin({ top: 4 })

2、首页-产品列表-产品详情

首页-产品列表-产品详情

核心代码:

轮播组件 Swiper
@Component
export struct SubscribeSwiper {
  private index: number = 0

  build() {
    Swiper() {
      ForEach(subscribeItems, item => {
        SwiperItem({ index: item.id })
      }, item => item.title)
    }
    .width('100%')
    .height('203')
    .indicator(false)
    .index(this.index)
    .autoPlay(true)
    .itemSpace(15)
    .displayMode(SwiperDisplayMode.AutoLinear)
  }
}

3、照片书模板

照片书模板

核心代码:

GridView布局
@Component
struct GridItemView {
  private gridItem: SubscribeData;

  build() {
    Column({space: 10})  {
      Image(this.gridItem.image)
        .objectFit(ImageFit.Auto)
        .height(152)
        .width('100%')
      Text(this.gridItem.title)
        .fontSize(15)
        .fontColor(Color.Black)
        .margin(20)
        .textAlign(TextAlign.Center)
    }
    .onClick(() => {
      router.push({
        uri: 'pages/homePicture',
        params: { imageUrl: this.gridItem.image, imageId: this.gridItem.image.id.toString() }
      })
    })
    .backgroundColor(Color.White)
  }
}

4、产品列表样式切换

产品列表样式切换

核心代码:

懒加载
Scroll() {
      Grid() {
        LazyForEach(new MyDataSource(this.productItems), (item: ProductData, index) => {
          GridItem() {
            ProductGridItem({ productItem: item })
          }
        }, (item: ProductData) => item.id.toString())
      }
      .rowsTemplate(this.gridRowTemplate)
      .columnsTemplate('1fr 1fr')
      .columnsGap(8)
      .rowsGap(8)
      .height(this.heightValue)
    }
    .scrollBar(BarState.Off)
    .padding({ left: 16, right: 16 })

切换样式

Stack({ alignContent: Alignment.TopEnd }) {
        if (this.showList) {
          ProductList({ productItems: this.productItems })
        } else {
          ProductCategory({ productItems: this.productItems })
        }
        Image($r('app.media.Switch'))
          .height(40)
          .width(24)
          .objectFit(ImageFit.Contain)
          .margin({ top: 15, right: 10 })
          .onClick(() => {
            this.showList = !this.showList
          })
      }

三、总结

【开发日记】

在学习开发的过程中,也在论坛同步记录了一下【开发日记】系列,方便自己以后回看和学习记录,有兴趣可以也看看:

代码仓

本工程以放在我的gitee仓里[邮印象ArkUI代码仓],欢迎来查看指导。

小结

经过实战课程:《HarmonyOS ArkUI入门训练营-健康生活实战》的学习,已经开始初步上手ArkUI的开发,其跨平台适配和简洁的编程语言给我留下了深刻的印象,感谢华为终端BG高级开发工程师的细心讲解。希望以后有机会继续学习ArkUI的课程,来慢慢完善邮印象ArkUI版。


更多关于HarmonyOS 鸿蒙Next ArkUI入门训练营—健康生活实战 邮印象ArkUI版的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

学习了

更多关于HarmonyOS 鸿蒙Next ArkUI入门训练营—健康生活实战 邮印象ArkUI版的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


例子非常棒

姓名: 张三
职业: 软件工程师
技能: Python, Java, C++
教育背景: 本科
工作经验: 5年
项目经验: 10个
语言能力: 中文(母语), 英文(流利)
联系方式: 邮箱: zhangsan@example.com | 手机: 12345678901

针对帖子标题“HarmonyOS 鸿蒙Next ArkUI入门训练营—健康生活实战 邮印象ArkUI版”,以下是对相关问题的直接回答:

问题1:ArkUI在鸿蒙系统中的作用是什么?

ArkUI是HarmonyOS(鸿蒙系统)的UI开发框架,用于构建跨设备的分布式用户界面。它支持使用JavaScript/TypeScript(基于ETS框架)或eTS(Enhanced TypeScript)语言进行开发,使得开发者能够高效地创建界面应用,实现UI在不同设备上的自适应和流畅交互。

问题2:在ArkUI中如何实现健康生活相关的功能?

在ArkUI中,实现健康生活相关的功能通常涉及使用组件和API来构建用户界面,如健康数据展示、运动记录、健康提醒等。开发者可以通过调用鸿蒙系统提供的健康数据接口,获取用户的步数、心率等数据,并在界面上进行展示和分析。同时,可以利用ArkUI的动画和交互特性,提升用户的使用体验。

问题3:邮印象ArkUI版是什么?

邮印象ArkUI版可能是指基于ArkUI框架开发的一款邮件或信息管理应用,具有鸿蒙系统的分布式特性,能够在多个设备上同步用户的邮件或信息数据。具体功能和实现细节可能因应用而异。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部