当前位置: 首页 > article >正文

一次开发,多端部署--实例二

一、视觉风格

        1、分层参数

        使用了分层参数后,当系统切换深色模式时,字体和背景也可以自适应。

        

Row() {
    Column() {
        Text('分层参数')
            // 分层参数在sysResource包,属于系统参数,全局可用
            .fontColor($r('sys_color.ohos_id_color_text_primary'))
            .fontSize($r('sys.float.ohos_id_text_size_headline3'))
    }
}
.backgroundColor($r('sys.color.ohos_id_color-background'))

        2、自定义资源

        开发者可以在resources目录中通过限定词目录来定义不同设备状态的资源,资源可以按照“key-value”的形式自定义。应用在运行态选择使用某资源时,系统会根据设备状态优先从相匹配的目录中寻找资源。

        

二、交互归一 

        1、缩放

        

Image()
.scale({ x: this.scaleValue, y: this.scaleValue, z: 1})
.gesture(
    // 双指捏合事件
    PinchGesture({ fingers: 2})
    .onActionStart(( event ?: GestureEvent ) => {})
    .onActionUpdate(( event ?: GestureEvent ) => {
        this.scaleValue = this.pinchValue * event.scale
    })
    .onActionEnd( () => {
        this.pinchValue = this.scaleValue
    })
}

三、功能级一多

        1、SysCap机制

        HarmonyOS使用SysCap机制(即SystemCapability),可以帮助开发者仅关注设备的系统能力,而不用考虑成百上千种具体的设备类型,降低多设备应用开发难度。

        

        (1)能力集

        系统能力集:操作系统中每一个相对独立的特性,如蓝牙、WIFI、NFC等。

        支持能力集:描述当前设备能够支持的哪些功能。

        要求能力集:描述当前应用,具有哪些能力。

        

         

        (2)canIUse接口

        在编码阶段,开发者可以通过canIUse接口,判断目标设备是否支持某系统能力,进而执行不同的业务逻辑。通常当设备不支持某种能力时,运行到这部分代码后,给出友好弹窗,避免crash崩溃。 

aboutToAppear() {
    if ( canIUse('SystemCapability.Communication.NFC.CORE' )) {
        controller.on('nfsCtateChange', (err,nfcState)) => {
            this.message = 'nfcState:' + nfcSatet
        })
    } else {
    
        this.message = 'this device does not support NFC'
    }
}

        

四、工程级一多

        1、三层架构规范

        

        


http://www.kler.cn/a/303345.html

相关文章:

  • 【云原生系列--Longhorn的部署】
  • 工作和学习遇到的技术问题
  • Flink1.19编译并Standalone模式本地运行
  • 软件测试:测试用例详解
  • OpenGL ES 共享上下文实现多线程渲染
  • GxtWaitCursor:Qt下基于RAII的鼠标等待光标类
  • RK3568 android11 usb摄像头预览分辨率添加多分辨率---解除1080p限制
  • 实现绑定UDP端口的Server程序
  • 大模型微调 - 基于预训练大语言模型的对话生成任务 训练代码
  • 计算机二级自学笔记(选择题1部分)
  • git的快速合并fast-forward merge详解
  • 机器学习和深度学习存在显著区别
  • LeetCode 热题 100 回顾11
  • 【系统架构设计师】ATAM(Architecture Tradeoff Analysis Method)
  • 【免费刷题】实验室安全第一知识题库分享
  • 简单了解深度学习
  • postcss-pxtorem实现页面自适应
  • python爬虫--实用又便捷的第三方模块--requests实战
  • 架构师知识梳理(七):软件工程-测试
  • 【智路】智路OS Perception Pipeline
  • 文件批量添加水印和密码合并单元格完整版
  • Python基础语法(2)
  • 【运维监控】Prometheus+grafana监控spring boot 3运行情况
  • 实现快速产出的短视频剪辑工具
  • Object.entries()
  • 力扣之1783.大满贯数量