鸿蒙常用UI效果及一些处理方式总结

前言:

DevEco Studio版本:4.0.0.600

详细使用介绍

1、Text的一些常用设置

Text(this.message)
   .fontSize(50)//字体大小
   .fontColor(Color.White)//字体颜色
   .fontWeight(FontWeight.Bold)//字体加粗
   .backgroundColor(Color.Black)//背景颜色
   .fontStyle(FontStyle.Italic) //字体倾斜
   .textOverflow({overflow: TextOverflow.Ellipsis})//文本超长显示方式,TextOverflow.Ellipsis:以省略号结尾
   .maxLines(1)//设置文本的最大行数

TextOverflow属性

效果:

参考文档:OpenHarmony Text显示文本

2、Text文字富文本

Text() {
   Span("《用户协议》").fontColor(Color.Blue)
      .decoration({ type: TextDecorationType.Underline, color: Color.Blue })//设置文本装饰线样式及其颜色。
      .onClick(() => {
         //实现点击,跳转到用户协议界面
      })
}

效果:

参考文档:OpenHarmony span富文本设置

3、线性边框按钮

Text('确定')
   .fontColor(Color.Black)
   .fontSize('28px')
   .width('146px')
   .height('48px')
   .textAlign(TextAlign.Center)
   .borderColor(Color.Blue)//边框颜色
   .borderWidth('1px')//边框宽度
   .borderRadius('10px')//边框圆角
   .onClick(() => {
      //实现点击逻辑
   })

// 如果单独设置某一个圆角可以通过下面方式设置,topLeft:左上角,topRight:右上角,bottomLeft:左下角,bottomRight:右下角

.borderRadius({ topLeft: '10px', topRight: '10px', bottomLeft: '10px', bottomRight: '10px' })

效果:

4、Image的一些常用设置

参考链接:OpenHarmony Image图片

圆形图片:

Image($r("app.media.startIcon"))
   .width(100)
   .height(100)
   .clip(new Circle({ width: 100, height: 100 }))

图片占位:

Image($r("app.media.startIcon"))
   .width(100)
   .height(100)
   .alt($r("app.media.icon"))

图片加载完成监听:

Image($r("app.media.startIcon"))
   .width(100)
   .height(100)
   .onComplete((event: {
      width: number,
      height: number
   }) => {
      console.info("图片宽度:" + event.width + "图片高度:" + event.height)
   })
参数名类型说明
widthnumber图片的宽。
单位:像素
heightnumber图片的高。
单位:像素
componentWidthnumber组件的宽。
单位:像素
componentHeightnumber组件的高。
单位:像素
loadingStatusnumber图片加载成功的状态值。
说明:
返回的状态值为0时,表示图片数据加载成功。返回的状态值为1时,表示图片解码成功。
contentWidth(10+)number图片实际绘制的宽度。
单位:像素
说明:
仅在loadingStatus返回1时有效。
contentHeight(10+)number图片实际绘制的高度。
单位:像素
说明:
仅在loadingStatus返回1时有效。
contentOffsetX(10+)number实际绘制内容相对于组件自身的x轴偏移。
单位:像素
说明:
仅在loadingStatus返回1时有效。
contentOffsetY(10+)number实际绘制内容相对于组件自身的y轴偏移。
单位:像素
说明:
仅在loadingStatus返回1时有效。

5、接口回调

自定义一个View:ImageTest

@Component
export struct ImageTest {
   //用于点击“确定”按钮的回调 (API10的写法)
   private onButtonClick: () => void = () => {
   }

   build() {
      Text('确定')
         .fontColor(Color.Black)
         .fontSize('28px')
         .width('146px')
         .height('48px')
         .textAlign(TextAlign.Center)
         .borderColor(Color.Blue)
         .borderWidth('1px')
         .borderRadius('10px')
         .onClick(() => {
            this.onButtonClick()
         })
   }
}

ImageTest的引用

ImageTest({ onButtonClick: () => {
   promptAction.showToast({
      message: '我是回调的数据',
      duration: 2000,
   })
} })

6、自定义Dialog弹窗

参考文档:OpenHarmony 自定义弹窗

使用@CustomDialog装饰器装饰自定义弹窗

@CustomDialog
export struct MessageDialog {
   build() {
    
   }
}

7、多态样式

参考链接:OpenHarmony 多态样式

stateStyles样式状态:

  • focused:获焦态。

  • normal:正常态。

  • pressed:按压态。

  • disabled:不可用态。

  • selected:选中态。(API 10中新增)

@Entry
@Component
struct Index {
   @Styles
   normalStyle() {
      .backgroundColor(Color.White)
   }

   @Styles
   pressedStyle() {
      .backgroundColor(Color.Gray)
   }

   build() {
      Column() {
         Text('确定')
            .fontSize('28px')
            .width('146px')
            .height('48px')
            .textAlign(TextAlign.Center)
            .borderColor(Color.Blue)
            .borderWidth('1px')
            .borderRadius('10px')
            .stateStyles({
               normal: this.normalStyle,
               pressed: this.pressedStyle
            })
      }
      .justifyContent(FlexAlign.Center)
      .width('100%')
      .height('100%')
   }
}

8、日期格式化

@Entry
@Component
struct Index {
   @State message: string = '';

   aboutToAppear() {
      setInterval(() => {
         this.initDate()
      }, 1000)
   }

   initDate() {
      let date = new Date()

      let year = this.format(date.getFullYear()) //获取年份
      let month = this.format(date.getMonth() + 1) //获取月份
      let day = this.format(date.getDate()) //获取天数

      let hours = this.format(date.getHours()) //获取小时
      let minutes = this.format(date.getMinutes()) //获取分钟
      let seconds = this.format(date.getSeconds()) //获取秒数

      this.message = year + '年' + month + '月' + day + '日  ' + hours + ':' + minutes + ':' + seconds
   }

   /**
    * 不足十位前面补零
    */
   format(param: number) {
      let value = '' + param
      if (param < 10) {
         value = '0' + param
      }
      return value
   }

   build() {
      Column() {
         Text(this.message)
            .fontSize(30)//字体大小
            .fontColor(Color.Black)//字体颜色
            .fontWeight(FontWeight.Bold) //字体加粗
      }
      .justifyContent(FlexAlign.Center)
      .width('100%')
      .height('100%')
   }
}

效果:

或者通过@ohos.intl (国际化-Intl)来实现,参考文档:

OpenHarmony DateTimeFormat日期格式化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/347008.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

将Python打包为exe+inno setup将exe程序封装成向导安装程序

为什么要打包&#xff1f; Python脚本不能在没有安装Python的机器上运行。如果写了一个脚本&#xff0c;想分享给其他人使用&#xff0c;可她电脑又没有装Python。如果将脚本打包成exe文件&#xff0c;即使她的电脑上没有安装Python解释器&#xff0c;这个exe程序也能在上面运行…

简单易懂带你入门Spring框架,循序渐进,帮助你理解IOC思想---(一)入门实验一,教你如何使用spring框架

目录 1.1 、Spring概述 1.2 、Spring家族 1.3 、Spring Framework 1.3.1 、Spring Framework特性 1.3.2 、Spring Framework五大功能模块 IOC容器 IOC思想 IOC容器在Spring中的实现 基于XML管理bean 实验一&#xff1a;入门案例 如何获取bean 1.1 、Spring概述 官网…

爬虫笔记(二):实战58二手房

第一&#xff1a;给大家推荐一个爬虫的网课哈&#xff0c;码起来 第二&#xff1a;今夜主题&#xff1a;通过xpath爬取58二手房的title信息&#xff0c;也就是标红的位置~ 第三&#xff1a;先分析一波title所在的位置 打开按下f12打开抓包工具&#xff0c;即可看到网站的源码…

代码随想录算法训练营29期|day30 任务以及具体安排

332.重新安排行程 class Solution {private LinkedList<String> res;private LinkedList<String> path new LinkedList<>();public List<String> findItinerary(List<List<String>> tickets) {Collections.sort(tickets, (a, b) -> a.…

【必剪】拼字怎么使用?哪些素材能使用拼字?

1-1 点击需要编辑文字&#xff0c;在给定的人物中选择 其中一个&#xff0c;选择【拼字】选项&#xff0c;以下的字母表 的字母读音&#xff0c;是当前人物在他的鬼畜原版里的 全部读音&#xff0c;你可以打出自己专属独特的语句 ! 1-2 在字母表中继续寻找想要的读音&#xff…

利用STM32CubeMX和Keil模拟器,3天入门FreeRTOS(4.0) —— 动态创建队列

前言 &#xff08;1&#xff09;FreeRTOS是我一天过完的&#xff0c;由此回忆并且记录一下。个人认为&#xff0c;如果只是入门&#xff0c;利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后&#xff0c;再去学习网上的一些其他课程也许会简单很多。 &#xff08;2&am…

基于YOLOv8的摔倒行为检测系统(Python源码+Pyqt6界面+数据集)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要内容:通过实战基于YOLOv8的摔倒行为检测算法&#xff0c;从数据集制作到模型训练&#xff0c;最后设计成为检测UI界面 人体行为分析AI算法&#xff0c;是一种利用人工智能技术对人体行为进行检测、跟踪和分析的方法。通过计算…

MATLAB知识点:mode :计算众数

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章 3.4.1节 mode &#xff1a;计算众数 众数是指一…

log4j2配置文件命名及优先级

log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式&#xff0c;2.x版本配置文件后缀名只能为".xml",“.json"或者”.jsn"。 命名规则 默认配置文件名&#xff1a; log4j2.xml 或 log4j2.json 测试或特定环境配置文件名&#xff1a;可以以 -t…

(blender学习)blender和vscode联合编写代码

文章目录 一、建立联合二、代码1.做一个小panel2. 给选定的物体更换好多好多材质 一、建立联合 按照这个文档做&#xff1a; 【Blender】使用 Microsoft Visual Studio Code 作为外部 IDE 来编写 Blender 脚本/附加组件 二、代码 下面几个代码的学习视频来自&#xff1a;ht…

Linux中并发程序设计(进程的创建和回收、exec函数使用)

进程的创建和回收 进程概念 概念 程序 存放在磁盘上的指令和数据的有序集合&#xff08;文件&#xff09; 静态的 进程 执行一个程序所分配的资源的总称 动态的进程和程序比较 注&#xff1a;进程是存在RAM中&#xff0c;程序是存放在ROM(flash)中的进程内容 BSS段&#xff…

Rocky8 顺利安装 Airflow 并解决数据库报错问题

rocky是替代centos的服务器系统&#xff0c;稳定可靠。rocky8会比centos7新&#xff0c;可以支持更多服务软件的安装&#xff0c;免去升级各种库的麻烦&#xff0c;本文运行airflow服务就用rocky8系统。airflow是一个定时任务管理系统&#xff0c;功能强大&#xff0c;目前是ap…

【QT+QGIS跨平台编译】之七:【libjpeg+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、libjpeg介绍二、文件下载三、文件分析四、pro文件五、编译实践一、libjpeg介绍 libjpeg是一个广泛使用的jpeg图像压缩和解压的函数库,采用 C 语言开发。 2013年1月,Independent JPEG Group发布了版本9,对新引入的无损编码模式进行了改进。2022年1月,发布了版…

Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍

功能介绍 根据设备的网络连接情况更新状态栏显示的运营商及网络状态。 注册上WFC&#xff08;WiFi Calling&#xff09;后&#xff0c;支持客制化显示左上角状态栏中的运营商网络状态信息 。具体的代码逻辑在CarrierDisplayNameResolver.java。 ServiceStateTracker 网络状态…

C# Bitmap类学习1

Bitmap对象封装了GDI中的一个位图&#xff0c;此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using …

程序媛的mac修炼手册-- 如何用Python节省WPS会员费

上篇分享了如何用微博爬虫&#xff0c;咱举例爬了女明星江疏影的微博数据。今天就用这些数据&#xff0c;给大家安利一下怎么用Python实现WPS中部分Excel付费功能。 MacOS系统自带的工具&#xff0c;绝大多数都非常顶&#xff0c;除Numbers外。当然&#xff0c;page比起word来&…

图像分类】【深度学习】【轻量级网络】【Pytorch版本】EfficientNet_V2模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】EfficientNet_V2模型算法详解 文章目录 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】EfficientNet_V2模型算法详解前言EfficientNet_V2讲解自适应正则化的渐进学习(Progressive Learning with adaptive Regul…

魔众题库系统v9.3.0版本:升级与新功能亮点,让学习更高效!

大家好&#xff01;今天我们激动地向大家宣布&#xff0c;魔众题库系统已经升级到了v9.3.0版本&#xff01;这个版本带来了许多令人兴奋的改进和新功能&#xff0c;让用户的使用体验更上一层楼。 首先&#xff0c;让我们来看看这个版本的VIP界面升级。无论是PC端还是移动端&am…

C/C++ - 编程语法特性

目录 标准控制台框架 输入输出对象 命名空间 标准控制台框架 头文件 ​#include <iostream>​​ 告诉编译器我们要使用iostream库尖括号中的名字指定了某个头文件(header) 入口函数 ​int main(void)​​ 返回 ​return 0;​​ 输出语句 ​std::cout << "H…

python基础——锁

进程锁 (互斥锁) 进程锁的引入&#xff1a; 模拟抢票程序&#xff1a; from multiprocessing import Process import json import time def show_ticket(i):with open("./tickets.txt",mode"r",encoding"utf-8") as file:ticket json.load(f…