HarmonyOS Next星河版笔记--界面开发(3)

news2024/11/26 14:26:10

属性

1.1.设计资源-svg图标

需求:界面中展示图标→可以使用的svg图标(任意放大缩小不失真、可以改变颜色)

使用方式:

①设计师提供:基于项目的图标,拷贝到项目目录使用

Image($r('app.media.ic_dianpu'))
.width(40)
fillColor('#b0473d')

②图标库中选取:找合适的图标资源 → 下载svg →拷贝使用

地址:https://developer.huawei.com/consumer/cn/design/harmonyos-icon/

示例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
Column(){
  //特点:1、任意放大缩小不失真
  //2、可以修改颜色
  Image($r("app.media.ic_public_add_filled"))
    .width(200)
    .fillColor(Color.Red)
}
  }
}

1.2.布局元素的组成

1.2.1.内边距padding

作用:在组件内添加间距,拉开内容与组件边缘之间的距离

Text('内边距padding')
.padding(20)//四个方向内边距均为20
//



Text ('内边距padding')
.padding({
    top:10,
    right:20,
    bottom:40,
    left:80
})//四个方向内边距分别设置

示例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column(){
      Text('Alika')
        .backgroundColor(Color.Pink)
        .padding({
          left:10,
          top:30,
          right:5,
          bottom:30
        })
    }
  }
}

运行效果

1.2.2.外边距margin

作用:在组件外添加间距,拉开两个组件之间的距离

案例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
   Column(){
     Row(){
       Text('刘备')
         .backgroundColor(Color.Orange)
       Text('关羽')
         .backgroundColor(Color.Pink)
         //.margin(30)//一次性设置四个方向的margin外边距
         .margin({
           left:30,
           top:10
         })
       Text('张飞')
         .backgroundColor(Color.Green)
     }
     Column(){
       Text('刘备')
         .backgroundColor(Color.Orange)
       Text('关羽')
         .backgroundColor(Color.Pink)
           //.margin(30)//一次性设置四个方向的margin外边距
         .margin({
           left:30,
           top:50
         })
       Text('张飞')
         .backgroundColor(Color.Green)
     
     }
   }
  }

运行结果

1.3.QQ音乐--登录案例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column() {
      Image($r('app.media.tomato'))
        .width(100)
      Text('一颗西红柿')
        .fontSize(30)
        .margin({
          bottom:50
        })
      Button('QQ登录')
        .width('100%')
        .margin({
          bottom:20
        })
      Button('微信登录')
        .width('100%')
        .backgroundColor('#ddd')
        .fontColor('#000')
    }
    .width('100%')
    .padding(30)
  }
}

运行效果

1.4.边框border

作用:给组件添加边界,进行装饰美化。

Text('边框语法')
    .border({
        width:1,        //宽度(必须设置)
        color:'#3274f6',//颜色
        style:BorderStyle.solid//样式
})   //四个方向相同
//

Text('边框语法')
    .border({
        width:{
           left:1,
           right:2
},
    color:{
        left:Color.Red,
        right:Color.Blur
},
style:{
    left:BorderStyle.Dashed,
    right:BorderStyle.Dotted
}
})//top、right、bottom、left

示例:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column() {
          Text('待完善')
            .padding(5)
            .margin(10)
            .border({
              width:1,//宽度(必须)
              color:Color.Red,//颜色
              style:BorderStyle.Dotted//点线
            })
          Text('单边框')
            .padding(5)
            .margin(15)
            .border({
              width:{
                top:2,
                bottom:3,
                right:20
              },
             color:{left:Color.Red,right:Color.Green},
              style:{
                left:BorderStyle.Dotted,
                right:BorderStyle.Solid

              }
            })

运行效果:

1.5.设置组件圆角

属性:.borderRadius(参数)

参数:数值或对象(四个角单独设置)

topLeft:左上角
topRight:右上角
bottomLeft:左下角
bottomRight:右下角


Text('圆角语法')
.borderRadius(5)//四个圆角相同
.borderRadius({
    topLeft:5
    topRight:10
    bottomLeft:15
    bottomRight:20
})//四个方向圆角,单独设置

示例:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column() {
          Text('没有圆角')
            .width(100)
            .height(60)
            .backgroundColor(Color.Pink)
            .margin(20)
      //添加圆角:
      //1、.borderRadius(数值)四个角圆角相同
      //2、.borderRadius({方位词:值})单独个某个角设置圆角
      Text('添加圆角')
        .width(100)
        .height(60)
        .backgroundColor(Color.Orange)
        .margin(20)
        .borderRadius({
          topLeft:20,
          bottomLeft:10,
          topRight:40,
          bottomRight:30
        })
    }
  }
}

运行效果

1.6.特殊形状的圆角设置

1.6.1.正圆

Text('正圆')
.width(100)       //宽高一样
.height(100)
.borderRadius(50)//圆角是宽或高的一半

1.6.2.胶囊按钮(左右半圆)

Text('胶囊按钮')
.width(150)       //宽大高小
.height(50)
.borderRadius(25)//圆角是高的一半

示例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column() {
      //1、正圆(一般用于头像)
      Image($r('app.media.tomato'))
        .width(100)
        .height(100)
        .borderRadius(50)

      //2、胶囊按钮
      Text('今天要来个西红柿嘛')
        .height(50)
        .width(150)
        .borderRadius(25)
        .backgroundColor(Color.Pink)

    }
    .padding(20)
  }
}

运行效果

1.7.背景属性

属性方法属性
背景图backgroundColor
背景色backgroundImage
背景图位置backgroundImagePostition
背景图尺寸backgroundImageSize

 1.7.1.背景图

属性:.backgroundImage(背景图地址,背景图平铺方式-枚举ImageRepeat)

Text()
    .backgroundImage($r('app.media.image'))

背景图平铺方式:(可省略)

  • NoRepeat:不平铺,默认值
  • X:水平平铺
  • Y:垂直平铺
  • XY:水平垂直平铺

示例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column() {
         Text('今天吃点什么腻~~')
           .width(200)
           .height(500)
           .backgroundColor(Color.Pink)
           //backgroundImage(加载的背景图片,是否平铺ImageRepeat枚举)
           .backgroundImage($r('app.media.kitchen'),ImageRepeat.Y)

    }
    .padding(20)
  }
}

 1.7.2.背景图位置

作用:调整背景图在组件内的显示位置,默认显示位置为组件左上角

属性:.backgroundImagePosition(坐标对象或枚举)

参数:

  • 位置坐标:{ x : 位置坐标, y : 位置坐标  }
  • 枚举:Alignment
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column() {
         Text('今天吃点什么腻~~')
           .width(200)
           .height(200)
           .backgroundColor(Color.Pink)
           //backgroundImage(加载的背景图片,是否平铺ImageRepeat枚举)
           .backgroundImage($r('app.media.tomato'),ImageRepeat.Y)
           //.backgroundImagePosition({x : 100, y : 100})
           .backgroundImagePosition(Alignment.Center)
    }
    .padding(20)
  }
}

1.7.3.背景定位

背景图位置的单位问题:

背景定位默认的单位→px:实际的物理像素点,设置出厂,就定好了【分辨率单位】

宽高默认单位→vp:虚拟像素,相对不同的设备会自动转换,保证不同设备视觉一致(推荐)

函数:vp2px(数值)将vp进行转换,得到px的数值

 .backgroundImagePosition({x : vp2px(2), y : vp2px(2)})

1.7.4.背景尺寸

作用:背景图缩放

属性:.backgroundImageSize(宽高对象 或 枚举)

参数:

  • 背景图宽高:{ width : 尺寸, height : 尺寸}
  • 枚举ImageSize:
    • Contain:等比例缩放背景图,当宽或高与组件尺寸相同时停止缩放
    • Cover:等比例缩放背景图至图片完全覆盖组件范围
    • Auto:默认,原图尺寸
.backgroundImageSize(ImageSize.Contain)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

查找连表的倒数第k个节点

居安思危 何解? 1、假如有1、2、3三个节点,找倒数第二个,实际是整数第几个? 3-21 2 : 及 length - k 1 ,所以先遍历找节点长度,在遍历找所需节点 // 今天这不是力扣的var findNode function(head , k){…

陪玩系统源码APP中的语音聊天直播房间有哪些功能?

陪玩系统源码APP通常采用Springboot、MybatisPlus和MySQL等后端技术栈来构建后端服务。这些技术提供了强大的数据处理能力和灵活的扩展性,能够满足高并发、低延迟的业务需求。 陪玩系统源码线上线下家政游戏陪玩前端开发框架如uniapp(针对Web和小程序&am…

【python】OpenCV—findContours(4.3)

文章目录 1、功能描述2、代码实现3、完整代码4、结果展示5、涉及到的库函数5.1、cv2.Canny5.2 cv2.boxPoints 6、参考 1、功能描述 找出图片中的轮廓,拟合轮廓外接椭圆和外接矩阵 2、代码实现 导入必要的库,固定好随机种子 import cv2 as cv import …

介绍目标检测中mAP50和mAP50-95的区别

在目标检测任务中,mAP(mean Average Precision)是一个常用的性能评估指标,用于衡量模型在不同类别和不同IoU(Intersection over Union)阈值下的平均精度。mAP50和mAP50-95是mAP的两个特定版本,它…

三维测量与建模笔记 - 2.2 射影几何

教程中H矩阵写的有问题,上图中H矩阵应该是(n1) x (m1) 共点不变性,下图中黄色方块标记的点,在射影变换前后,虽然直线的形状有所变化,但仍然相交于同一个点。 共线不变性,下图黄色标记的两个点,在…

【设计模式】策略模式定义及其实现代码示例

文章目录 一、策略模式1.1 策略模式的定义1.2 策略模式的参与者1.3 策略模式的优点1.4 策略模式的缺点1.5 策略模式的使用场景 二、策略模式简单实现2.1 案例描述2.2 实现代码 三、策略模式的代码优化3.1 优化思路3.2 抽象策略接口3.3 上下文3.4 具体策略实现类3.5 测试 参考资…

nuPlan最新SOTA,香港科技大学发布基于学习决策范围内的规划PlanScope

nuPlan最新SOTA,香港科技大学发布基于学习决策范围内的规划PlanScope Abstract 在自动驾驶的背景下,基于学习的方法在规划模块的开发中表现出了很大的潜力。在规划模块的训练过程中,直接最小化专家驾驶日志与规划输出之间的差异是一种广泛采…

String字符串 Random数字运算

Java API String 在使用String类进行字符串操作之前需要对String类进行初始化,在Java中可以通过以下两种方式对String类进行初始化 (1) 使用字符串常量 直接初始化一个String对象,具体代码如下 这是比较简化的写法 String a "abd"; (2) 使用String类的构造方法…

【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 引入: 一:Maven插件的安装 1:环境准备 2:创建项目 二…

王道408 DS 数据结构笔记

408 数据结构 文章目录 线性表顺序表静态分配动态分配算法设计 链表单链表双链表循环链表循环单链表循环双链表 静态链表算法设计 栈顺序栈共享栈链式栈算法设计应用 队列循环队列链队列算法设计 串顺序存储链式存储串的模式匹配 树二叉树线索二叉树树、森林树、森林的存储树和…

这款Chrome 插件,帮助任意内容即可生成二维码

前言 随着二维码的流行,真的是生活中越来越多的地方都有二维码了。在我们上网的时候,其实也可以快速的让网址生成一个二维码,然后我们手机扫描一下这个二维码就可以快速的在手机上打开网页了。而且,不仅是生成网址的二维码&#…

25届大模型秋招总结经验分享(互联网版)

个人背景:2硕,多段大厂实习,无a,学术能力拉垮 面试感受 \1. 大模型主要分为基座组和业务组,基座组的面试难度明显要求比业务组高,一般少不了各种公式推导,手撕源码,并要求对一些实…

使用Django Channels实现WebSocket实时通信

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Django Channels实现WebSocket实时通信 Django Channels 简介 环境搭建 安装 Django 和 Channels 创建 Django 项目 配置 A…

优化文本嵌入,大幅提升RAG检索速度

大家好,文本嵌入技术能够将文字信息转换成高维向量表示的数字,提供了一种理解和处理文本数据的新方式,帮助我们更好地理解和处理文本数据。这些向量能够捕捉文本的深层特征,进而支持多种应用,比如理解语义、进行文本分…

【Node技巧】Node.js创建REST架构风格的API

🧑‍💼 一名茫茫大海中沉浮的小小程序员🍬 👉 你的一键四连 (关注 点赞收藏评论)是我更新的最大动力❤️! 📑 目录 🔽 前言1️⃣ 什么是REST API?2️⃣ Node.js构建REST API的优势3️…

js中怎么把excel和pdf文件转换成图片打包下载

index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>文件转图片工具</title><!-- 本…

Linux 练习三

1、建立用户组 shengcan&#xff0c;其id 为 2000 [rootlocalhost 桌面]# groupadd -g 2000 shengchan 2、建立用户组 caiwu&#xff0c;其id 为 2001 [rootlocalhost 桌面]# groupadd -g 2001 caiwu 3、建立用户组 jishu&#xff0c;其 id 为 2002 [rootlocalhost 桌面]#…

uniapp vue3 使用echarts-gl 绘画3d图表

我自己翻遍了网上&#xff0c;以及插件市场&#xff0c;其实并没有uniapp 上使用echarts-gl的样例&#xff0c;大多数都是使用插件市场的echarts的插件 开始自己尝试直接用echartsgl 没有成功&#xff0c;后来尝试使用threejs 但是也遇到一些问题&#xff0c;最后我看官网的时…

openGauss数据库-头歌实验1-4 数据库及表的创建

一、创建数据库 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;创建指定数据库。 &#xff08;二&#xff09;相关知识 数据库其实就是可以存放大量数据的仓库&#xff0c;学习数据库我们就从创建一个数据库开始吧。 为了完成本关任务&#xff0c;你需要掌握&a…

Android TextView自动换行文本显示不全解决

某些情况下&#xff0c;TextView自动换行后&#xff0c;会出现每行结尾处显示不全的问题&#xff0c; 如图&#xff1a; 常见解决方案&#xff1a; 设置TextView的“ellipsize”属性为“end” 实测无效&#xff01;将TextView外部的Layout改为RelativeLayout 实测无效&…