HarmonyOS 开发

news2024/9/27 5:37:28
环境 

下载IDE

代码 
import { hilog } from '@kit.PerformanceAnalysisKit';
import testNapi from 'libentry.so';
import { router } from '@kit.ArkUI';
import { common, Want } from '@kit.AbilityKit';

@Entry
@Component
struct Index {
  @State message: string = 'Hello HarmonyOS!';
  private context = getContext(this) as common.UIAbilityContext;

  // Ability间跳转
  async explicitStartAbility() {
    const want : Want = {
      deviceId: "",
      bundleName: "com.example.board",
      moduleName: "entry",
      abilityName: "secondAbitily"
    };
    let context = getContext(this) as common.UIAbilityContext;
    await context.startAbility(want);
  }


  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .fontColor($r('app.color.text_color'))//访问字体颜色
          .backgroundImage($r('app.media.background'), ImageRepeat.XY) //设置背景图片,ImageRepeat.XY则是图片太小时候,选择某个坐标位置的颜色填充
          .onClick(() => {
            hilog.info(0x0000, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.add(2, 3));
          })
          .margin({ top: 20 })

        Button('Click me')
          .onClick(() => {
            this.message = 'Hello, World!';
          })
          .margin({ top: 10 })

        Button('Next Page')
          .onClick(() => {
            router.pushUrl({url: "pages/flex",
                            params: {name: "args"}},
                            router.RouterMode.Single) // 同ability
            // this.explicitStartAbility();  // 不同ability
          })

        // 使用系统资源
        Image($r('sys.media.ohos_app_icon'))
          .border({
            color: $r('sys.color.ohos_id_color_palette_aux11'),           // 设置边框颜色为辅助色11
            radius: $r('sys.float.ohos_id_corner_radius_button'),         // 设置边框圆角半径为按钮圆角半径
            width: 2                                                      // 设置边框宽度为2
          })
          .margin({
            top: $r('sys.float.ohos_id_elements_margin_horizontal_m'),    // 设置上边距为水平中等间距
            bottom: $r('sys.float.ohos_id_elements_margin_horizontal_l')  // 设置下边距为水平大间距
          })
          .height(200)                                                    // 设置高度为200
          .width(300)
      }
      .width('100%')
    }
    .height('100%')
    .justifyContent(FlexAlign.Center)
    .alignItems(VerticalAlign.Center)
    .padding(10)
  }
}

 

import { hilog } from '@kit.PerformanceAnalysisKit';
import testNapi from 'libentry.so';
import { router } from '@kit.ArkUI';

@Entry
@Component
struct Example {
  @State name : string = (router.getParams() as Record<string, string>)['name'];

  build() {
    Column() {
      Button('Prev Page')
        .onClick(() => {
          router.back() // 同ability跳转
          // router.pushUrl({url: "pages/Index"})
        })

      /**Flex({ wrap: FlexWrap.Wrap })是一个Flex布局的设置,
       *其中wrap: FlexWrap.Wrap表示设置Flex容器的子元素在主轴方向上超出容器时是否换行。
       *在这里,FlexWrap.Wrap表示子元素会自动换行,以适应容器的尺寸。
       * 这样设置可以确保在容器尺寸不足以容纳所有子元素时,子元素会自动换行,而不会超出容器范围。
       */
      Flex({ wrap: FlexWrap.Wrap }) {
        // 默认不写单位就是是vp
        Column() {
          Text("width(220)")
            .width(220)  // 设置宽度为220vp
            .height(40)  // 设置高度为40vp
            .backgroundColor("#00BFC9")  // 设置背景颜色为#00BFC9
            .fontSize("12vp")  // 设置字体大小为12vp
        }.margin(5)  // 设置外边距为5vp

        // 宽度指定成px
        Column() {
          Text("width('220px')")
            .width('220px')  // 设置宽度为220px
            .height(40)  // 设置高度为40vp
            .backgroundColor("#007900")  // 设置背景颜色为#007900
            .textAlign(TextAlign.Center)  // 设置文本对齐方式为居中
            .fontColor(Color.White)  // 设置字体颜色为白色
        }.margin(5)  // 设置外边距为5vp

        // 宽度指定成vp
        Column() {
          Text("width('220vp')")
            .width('220vp')  // 设置宽度为220vp
            .height(40)  // 设置高度为40vp
            .backgroundColor("#FF9800")  // 设置背景颜色为#FF9800
            .textAlign(TextAlign.Center)  // 设置文本对齐方式为居中
            .fontColor(Color.White)  // 设置字体颜色为白色
            .fontSize('12vp')  // 设置字体大小为12vp
        }.margin(5)  // 设置外边距为5vp

        // 宽度指定成vplpx
        Column() {
          Text("width('220lpx') designWidth:720")
            .width("220lpx")  // 设置宽度为220lpx
            .height(40)  // 设置高度为40vp
            .backgroundColor("#634794")  // 设置背景颜色为#634794
            .textAlign(TextAlign.Center)  // 设置文本对齐方式为居中
            .fontColor(Color.White)  // 设置字体颜色为白色
            .fontSize('12vp')  // 设置字体大小为12vp
        }.margin(5)  // 设置外边距为5vp

        // 将vp单位的数值转换为以px为单位的数值
        Column() {
          Text("width(vp2px(220) + 'px')")
            .width(vp2px(220) + 'px')  // 将220vp转换为px单位的数值,然后设置宽度
            .height(40)  // 设置高度为40vp
            .backgroundColor('#3F56EA')  // 设置背景颜色为#3F56EA
            .textAlign(TextAlign.Center)  // 设置文本对齐方式为居中
            .fontColor(Color.White)  // 设置字体颜色为白色
            .fontSize('12vp')  // 设置字体大小为12vp
        }.margin(5)  // 设置外边距为5vp

        // fontSize('12fp')设置成fp
        Column() {
          Text("fontSize('12fp')")
            .width(220)  // 设置宽度为220vp
            .height(40)  // 设置高度为40vp
            .backgroundColor('#A14A5C')  // 设置背景颜色为#A14A5C
            .textAlign(TextAlign.Center)  // 设置文本对齐方式为居中
            .fontColor(Color.White)  // 设置字体颜色为白色
            .fontSize('12fp')  // 设置字体大小为12fp
        }.margin(5)  // 设置外边距为5vp

        // 将px单位的数值转换为以vp为单位的数值。
        Column() {
          Text("width(px2vp(220))")
            .width(px2vp(220))  // 将220px转换为vp单位的数值,然后设置宽度
            .height(40)  // 设置高度为40vp
            .backgroundColor('#E40078')  // 设置背景颜色为#E40078
            .textAlign(TextAlign.Center)  // 设置文本对齐方式为居中
            .fontColor(Color.White)  // 设置字体颜色为白色
            .fontSize('12fp')  // 设置字体大小为12fp
        }.margin(5)  // 设置外边距为5vp
      }.width('100%')  // 设置宽度为100%
    }
  }
}
效果

参考

快速入门 - 华为开发者联盟


创作不易,小小的支持一下吧!

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

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

相关文章

Java蛋糕店烘焙店系统小程序系统源码

解锁烘焙新纪元&#xff0c;揭秘“蛋糕店烘焙店系统”的甜蜜秘籍&#xff01; &#x1f31f;【开篇&#xff1a;烘焙业的数字化浪潮】&#x1f31f; 在这个快节奏的时代&#xff0c;传统烘焙行业也迎来了它的数字化转型时刻&#xff01;你是否梦想过拥有一家高效运转、顾客满…

了解 JavaScript 中的请求 API

你准备好提升你的网络开发技能了吗&#xff1f;&#x1f680; 在当今数据驱动的世界中&#xff0c;了解如何从 API 获取和处理数据至关重要。本指南将引导您了解在 JavaScript 中发出 HTTP 请求的最新和最有效的方法&#xff0c;确保您的 Web 应用程序保持动态和前沿。 为什么请…

排序算法【冒泡排序】

一、原理 冒泡排序的原理比较简单&#xff0c;就是将待排序区域的数值挨个向后对比&#xff0c;直到比较到已排序的边界&#xff0c;就纳入已排序区域。 二、代码如下所示&#xff1a; #include <stdio.h> #include "test.h"/* 冒泡排序 */ void bubble_sort(…

【GH】【EXCEL】P2: Read DATA SET from EXCEL into GH

文章目录 ReadRead DataExcel Data sourceGH process and components instructionRead Data Read Data LiveLive Worksheet Read Read Data Excel Data source GH process and components instruction Read Data Read data from Excel Input parameters: Worksheet (Generic …

超网和无类间路由是什么?

​一、超网概述 超网是将多个连续的网络地址组合成一个增加的网络地址的技术。常用于减少路由器的路由表大小&#xff0c;网络的可扩展性。通过合并连续的子网&#xff0c;超网可以减少路由入侵的数量&#xff0c;从而提高网络的效率。 超网的实现基于合并多个具有连续IP地址…

html 首行缩进2字符

1. html 首行缩进2字符 1.1. 场景 在Html开发中让一段文字&#xff08;富文本等&#xff09;首行缩进两个文字&#xff0c;可能在前面加上8个“ ”&#xff0c;因为过去对CSS不熟悉&#xff0c;这种方法实现虽然比较直接&#xff0c;但是文字多的时候会有很多“ ”充斥在代码中…

openGauss 6.0安装过程解除对root用户依赖之gs_preinstall

目录 1.执行前提条件 1.1设置OS参数&#xff1a; 1.2定时任务权限 1.3 修改最大文件描述符 2.切换至omm用户&#xff0c;执行preinstall 3.source环境变量 4.执行gs_install 在给客户部署业务系统时&#xff0c;由于openGauss数据库的预安装过程需要用到root用户执行&am…

SD3+ComfyUI文生图生成指南

随着人工智能技术的飞速发展&#xff0c;文生图技术已经越来越成熟。SD3&#xff08;Stable Diffusion 3 Medium&#xff09;模型以其20亿参数的庞大容量&#xff0c;提供了高质量的图像生成能力。结合ComfyUI这一灵活的节点式操作界面&#xff0c;用户可以更加高效地进行创作。…

企业电脑防泄密用什么加密软件?10款2024年企业文件加密软件推荐

在当今信息化时代&#xff0c;企业数据安全已成为重中之重。文件加密软件能够有效保护敏感信息&#xff0c;防止数据泄露和未经授权的访问。本文将为您推荐十款优秀的企业文件加密软件&#xff0c;帮助企业提高信息安全性。 1.安秉网盾加密软件 安秉网盾加密软件是一款新一代…

虚拟机Linux的坑 | VMware无法从主机向虚拟机 跨系统复制粘贴拖动 文件/文本

这个情况下&#xff0c;还是没办法跨系统拖拽文件 解决办法&#xff1a; 在终端中输入命令 sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools sudo apt-get install open-vm-tools-desktop过程中只要需要选择是否覆盖的地方&#xff0c;都输入&…

8款StableDiffusion插件助你一臂之力

前言 在AI绘画领域&#xff0c;Stable Diffusion&#xff08;SD&#xff09;绝对是设计师和艺术家们最爱用的工具之一。它给设计师们带来了无限的创作灵感&#xff0c;不管是数字艺术、概念设计还是角色建模&#xff0c;都能让设计师们受益匪浅&#xff0c;大大提高他们的出图…

设计开发一个data-table

前言 在日常开发中&#xff0c;数据表格扮演着至关重要的角色。它以结构化的形式展现信息&#xff0c;使数据清晰易懂&#xff0c;开发者基于此类表格可以对其进行拓展和复用&#xff0c;本篇文章我们将循序渐进地介绍如何构建一个功能完善、易于使用的表格组件&#xff0c;并…

Coze插件发布!PDF转Markdown功能便捷集成,打造你的专属智能体

近日&#xff0c;TextIn开发的PDF转Markdown插件正式上架Coze。 在扣子搜索“pdf转markdown”&#xff0c;或在Coze搜索“pdf2markdown” 即可找到插件&#xff0c;在你的专属智能体中便捷使用文档解析功能。 如果想测试解析插件在你需要的场景下表现如何&#xff0c;可以直接…

数据链路层 I(组帧、差错控制)【★★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 为了把主要精力放在点对点信道的数据链路层协议上&#xff0c;可以采用下图&#xff08;a&#xff09;所示的三层模型。在这种三层模型中&#xff0c;不管在哪一段…

09.直线图

9. 直线图 9.1 普通直线图 self.add_heading("直线图", level1)self.add_heading("普通直线图", level2)# 数据源data [10, 20]data2 [40, 60]data3 [80,90]self.add_quick_chart(data[[2018,2024],data, data2, data3],series[pool1使用情况(TiB),poo…

大数据学习-Spark基础入门

一、Spark是什么&#xff1f; Stack Overflow的数据可以看出&#xff0c;2015年开始Spark每月的问题提交数量已经超越Hadoop&#xff0c;而2018年Spark Python版本的API PySpark每月的问题提交数量也已超过Hadoop。2019年排名Spark第一&#xff0c;PySpark第二&#xff1b;而十…

【三维目标检测模型】ImVoxelNet

【版权声明】本文为博主原创文章&#xff0c;未经博主允许严禁转载&#xff0c;我们会定期进行侵权检索。 参考书籍&#xff1a;《人工智能点云处理及深度学习算法》 ImVoxelNet是一种基于RGB图像的三维目标检测模型&#xff0c;发表在WACV 2022 《ImVoxelNet: Image to Vo…

记事本/软件商店/xbox打不开(不会丢失数据)(保姆级教程)

软件商店的安装 &#xff1a; 在某些情况下&#xff0c;系统更新可能导致本地账户和微软账户出现问题&#xff0c; 使得更新似乎只影响到了一个账户&#xff0c;而非我当前使用的账户。 这会导致我环境中的某些Windows自带应用&#xff0c;如微软商店、电影与电视、画图、记事…

鸿蒙开发入门day10-组件导航

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;还请三连支持一波哇ヾ(&#xff20;^∇^&#xff20;)ノ&#xff09; 目录 组件导航 (Navigation) 设置页面显示模式 设置标题栏模式 设置菜…

论文降重切勿“本末倒置”!一文教你如何有效降重

【SciencePub学术】本期热点 论文降重 原创性是评价论文质量的重要标准之一。许多读者在撰写论文都担心重复率过高的问题。 本篇文章旨在分享有效降低学术论文重复率的策略&#xff0c;从而促进学术诚信&#xff0c;提高研究工作的创新性和学术价值。通过一系列实用的写作技巧…