灯的控制-鸿蒙ArkTS

这篇博客介绍了如何在鸿蒙系统中使用ArkTS语言实现灯的控制,包括开关灯和调节亮度。内容涵盖了组件属性和滑动条的使用,并提供了运行效果图和源码供参考。

1.功能
可实现灯的开灯、关灯和亮度调节。
2.相关知识
学习组件属性、滑动条的使用。
3.运行效果图
可控灯

4.源码
@Entry
@Component
struct MainPage {
@State lightState:boolean=false
@State lightValue:number=50
build() {
Column({ space: 5 }) {
Stack(){
Image(r("app.media.lightOff")).width(′100vp′).height(′170vp′).margin(top:30)Image(this.lightState?r("app.media.lightOff")).width('100vp').height('170vp').margin({top:30}) Image(this.lightState?r("app.media.lightOff")).width(100vp).height(170vp).margin(top:30)Image(this.lightState?r(“app.media.lightOn”):$r(“app.media.lightOff”))
.width(‘100vp’).height(‘170vp’).margin({top:30}).opacity(this.lightValue/100)
}

  Text(this.lightState?'关灯':'开灯').fontSize(26).fontColor(0x000000)
    .onClick(()=>{this.lightState=!this.lightState})
  Row() {
    Text("0").fontSize(20)
    Slider({
      value: this.lightValue, min: 0,max: 100,step: 1,
      style: SliderStyle.OutSet,
      direction: Axis.Horizontal,
      reverse: false
    })
      .width('80%').height(40)
      .backgroundColor("#ffcbcbcf")
      .blockColor(Color.Red)// 设置滑块颜色
      .trackColor(Color.Pink)// 设置滑轨颜色
      .selectedColor(Color.Red)// 设置滑轨的已滑动颜色
      .trackThickness(6)// 设置滚动条宽度
      .onChange((value: number) => { this.lightValue = value})
    Text("100").fontSize(20)
  }
}.width('100%').height('100%')

}
}

### 鸿蒙 ArkTS 实现跑马效果 #### 创建项目结构 为了创建一个具有跑马效果的应用程序,在`entry/src/main/resources/base/graphic`目录下新建名为`marquee_background.xml`的文件来定义滚动文本框的样式。 ```xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <corners ohos:radius="20"/> <solid ohos:color="#FFD700"/> <!-- 使用金色作为背景颜色 --> </shape> ``` 此部分代码用于设置矩形形状以及圆角和填充色[^3]。 #### 编写界面布局 接着在页面布局文件中引入上述自定义样式的控件并配置其属性: ```xml <!-- entry/src/main/ets/MainAbilitySlice.ets --> <div class="container"> <swiper id="marqueeSwiper" indicator-mode="none" autoplay="true" interval="3000ms" loop="true"> <div><text style="font-size: large;">消息一:欢迎使用鸿蒙操作系统!</text></div> <div><text style="font-size: large;">消息二:探索更多有趣的功能吧。</text></div> <div><text style="font-size: large;">消息三:享受流畅高效的体验之旅。</text></div> </swiper> </div> ``` 这里通过`swiper`标签实现了自动播放、循环显示的消息列表,每条消息之间有固定的时间间隔[^2]。 #### 添加交互逻辑 最后一步是在TypeScript文件里处理滑动事件监听器,以便更好地控制轮播行为: ```typescript // entry/src/main/js/default/index.ts export default { onInit() { this.$element('marqueeSwiper').onAnimationStart((index) => { console.info(`当前展示的是第${index + 1}条`); }); this.$element('marqueeSwiper').onAnimationEnd((index, eventInfo) => { console.info(`即将切换到第${eventInfo.nextIndex + 1}条`); }); } } ``` 这段脚本注册了两个回调函数分别对应于每次动画启动与结束时刻的动作响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值