鸿蒙系列--组件介绍之资源引用类型

news/2024/7/21 10:07:10 标签: harmonyos

Resource

资源引用类型用于设置组件属性的值。

        可以将资源文件(字符串、颜色、大小、图片、音频、视频等)统一存放于resources目录下,便于统一维护。

        系统可以根据当前配置加载合适的资源,例如,可以根据屏幕尺寸呈现不同的布局效果,或根据语言设置提供不同的字符串等。

举例:

@Entry
@Component
struct ButtonPage {

  build() {
    Row() {
      Column() {
        Button('登录', { type: ButtonType.Capsule, stateEffect: true })
          .width(300)
          .height(40)
          .fontSize(16)
          .fontWeight(FontWeight.Medium)
          .backgroundColor('#007DFF')
      }
      .width('100%')
    }
    .height('100%')
  }
}

上面这个测试代码中直接在代码中写入了字符串和数字这样的硬编码,导致不好维护,将这些硬编码相关的属性定义到资源文件中:entry/src/main/resources

1.在string.json中定义要显示的文本

{
  "string": [
    {
      "name": "login_text",
      "value": "登录"
    }
  ]
} 

2.在float.json中定义Button的宽高和字体大小

{
  "float": [
    {
      "name": "button_width",
      "value": "300vp"
    },
    {
      "name": "button_height",
      "value": "40vp"
    },
    {
      "name": "login_fontSize",
      "value": "16fp"
    }
  ]
}

3.在color.json中定义Button的背景颜色

{
  "color": [
    {
      "name": "button_color",
      "value": "#007DFF"
    }
  ]
}

4.通过“$r('app.type.name')”的形式引用应用资源

  • app:代表应用内resources目录中定义的资源;
  • type:代表资源类型(或资源的存放位置)可以取“color”、“float”、“string”、“plural”、“media”;
  • name:代表资源命名,自定义
@Entry
@Component
struct ButtonPage {

  build() {
    Row() {
      Column() {
        Button($r('app.string.login_text'), { type: ButtonType.Capsule, stateEffect: true })
          .width($r('app.float.button_width'))
          .height($r('app.float.button_height'))
          .fontSize($r('app.float.login_fontSize'))
          .fontWeight(FontWeight.Medium)
          .backgroundColor($r('app.color.button_color'))
      }
      .width('100%')
    }
    .height('100%')
  }
}

http://www.niftyadmin.cn/n/5278044.html

相关文章

C# 获取本机IP地址的方法

在C#环境中,要获取本机的IP地址,可以使用以下方法: 1、使用NetworkInterface类和IPAddress类: using System; using System.Net; using System.Net.NetworkInformation;class Program {static void Main(){// 获取本地计算机上的…

嵌入式中串口输入

学习目标 掌握串口初始化流程掌握串口接收逻辑了解中断接收逻辑熟练掌握串口开发流程学习内容 需求 串口接收PC机发送的数据。 串口数据接收 串口初始化 static void USART_config() {uint32_t usartx_tx_rcu = RCU_GPIOA;uint32_t usartx_tx_port = GPIOA;uint32_t usartx…

2017年第六届数学建模国际赛小美赛A题飓风与全球变暖解题全过程文档及程序

2017年第六届数学建模国际赛小美赛 A题 飓风与全球变暖 原题再现: 飓风(也包括在西北太平洋被称为“台风”的风暴以及在印度洋和西南太平洋被称为“严重热带气旋”)具有极大的破坏性,往往造成数百人甚至数千人死亡。   许多气…

Bash 脚本学习

文章目录 1、脚本编程基础2. 变量2.1 参数变量的引用2.2 环境变量 3 条件判断语句3.1 if 语句3.1.1 语法3.1.2 案例 3.2 case 语句3.2.1 语法3.2.2 案例 3.3 判断参数说明 4 循环语句4.1 for 循环4.1.1 语法4.1.2 案例 4.2 while循环4.2.1 语法4.2.2 案例4. 3 循环总结 5. 函数…

网络安全学习-NTFS安全权限、文件共享

NTFS安全权限 权限概述 设置NTFS权限,实现不同用户访问不同对象(文件、文件夹)的权限分配正确访问权限后,用户才能访问资源设置权限防止资源被篡改、删除 文件系统概述 文件系统就是这个分区的存储格式,不建立文件…

el-table 实现行拖拽排序

element ui 表格实现拖拽排序的功能&#xff0c;可以借助第三方插件Sortablejs来实现。 引入sortablejs npm install sortablejs --save组件中使用 import Sortable from sortablejs;<el-table ref"el-table":data"listData" row-key"id" …

【控制器局域网】CAN报文学习笔记(四)之 字节排序、信号提取实例1

以下面的表格来表示字节顺序和位顺序&#xff0c;用红色表示高位MSB&#xff0c;蓝色表示低位LSB&#xff0c;绿色为LSB到MSB的过度 Bit oderMSB→→→→→→LSBByte oder\Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0MSBByte076543210↓Byte115141312111098↓Byte22322212019181716↓By…

云原生扫盲篇

What 云原生加速了应用系统与基础设施资源之间的解耦,向下封装资源以便将复杂性下沉到基础设施层;向上支撑应用,让开发者更关注业务价值 云原生是一种构建和运行应用程序的方法,也是一套技术体系和方法论. Cloud 表示应用程序位于云中而不是传统的数据中心Native表示应用程序从…