1m的带宽做网站可以吗/谷歌官网首页

1m的带宽做网站可以吗,谷歌官网首页,上海公司网站,外贸推广具体是做什么本节内容将帮助开发者学习如何构建一个全新的HarmonyOS应用,学习使用DevEco Studio创建新项目、使用预览器预览页面、了解基础组件如Image、Text等。 文章目录 一、介绍二、创建一个新项目三、页面结构总览四、自定义文本视图五、创建Image组件 一、介绍 根据本教程…

本节内容将帮助开发者学习如何构建一个全新的HarmonyOS应用,学习使用DevEco Studio创建新项目、使用预览器预览页面、了解基础组件如Image、Text等。

文章目录

    • 一、介绍
    • 二、创建一个新项目
    • 三、页面结构总览
    • 四、自定义文本视图
    • 五、创建Image组件

在这里插入图片描述
在这里插入图片描述


一、介绍

根据本教程【开发入门:Hello World】创建全新的项目。

根据教程中的提示使用01_Resources文件夹中的文件。

在这里插入图片描述

如果您想要自行探索,可以直接打开01_Complete文件夹中的项目并浏览代码。

项目文件下载

下载项目文件开始构建本项目,请根据以下步骤操作:

01_EnvironmentSetup.zip

二、创建一个新项目

使用DevEco Studio创建一个空项目,了解ArkUI模板代码和预览器的使用方法。

1. 搭建开发环境:

  1. 安装DevEco Studio
  2. 设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用

2. 打开DevEco Studio,通过如下两种方式,打开工程创建向导界面:

如果当前未打开任何工程,可以在DevEco Studio的欢迎页,选择Create Project开始创建一个新工程。

在这里插入图片描述

如果已经打开了工程,可以在菜单栏选择File > New > Create Project来创建一个新工程。

在这里插入图片描述

3. 点击Create Project按钮后,跳转至Create Project页面,左侧可以选择创建应用或创建元服务。这里选择创建应用Application。选择Empty Ability模板,然后单击Next,进入配置界面。

在这里插入图片描述

4. 将Project name自定义为QuickStart。

在这里插入图片描述

检查Bundle name和Save location是否与命名一致,一般会根据Project name自行更新,也可以根据需要自行更改。

在这里插入图片描述
选择Compatible SDK为5.0.0(12),在编译构建时,DevEco Studio会根据指定的Compatible SDK版本进行编译打包。

在这里插入图片描述

其中,Compatible SDK需要跟随版本变化变更选择。

DevEco Studio会默认勾选除‘Car’以外的全部Device type,保持该选项即可。

在这里插入图片描述

5.单击Finish,工具会自动生成示例代码和相关资源。

在这里插入图片描述

等待工程创建完成,创建后界面如右图所示。

在这里插入图片描述

6. 在Project导航栏中选中 entry -> src -> main -> ets -> pages -> Index.ets,即可看到初始创建项目的模板代码。

@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {RelativeContainer() {Text(this.message).id('HelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }})}.height('100%').width('100%')}
}

在这里插入图片描述

其中,@Component装饰器装饰了struct关键字声明的数据结构Index。Index被@Component装饰后具备组件化的能力,通过实现build方法描述UI。

@Component

@Entry装饰的@Component将作为UI页面的入口。在单个UI页面中,最多可以使用@Entry装饰一个自定义组件。

@Entry

界面由RelativeContainer相对布局容器作为根容器,RelativeContainer支持容器内部的子元素设置相对位置关系,适用于界面复杂场景的情况,对多个子组件进行对齐和排列。

  RelativeContainer() {}

通过Text组件展示一段文本

   Text(this.message)

文本信息由@State装饰器装饰的状态变量message驱动。

  @State message: string = 'Hello World';

Text组件定义了组件标识id为HelloWorld,用于唯一指定组件。

   .id('HelloWorld')

定义字体大小fontSize取值为50;定义文本的字体粗细fontWeight取值为Bold,即字体较粗。

   .fontSize(50).fontWeight(FontWeight.Bold)

alignRules属性用于指定设置在相对容器中子组件的对齐规则,仅当父容器为RelativeContainer时生效,在这里定义Text组件横向居中和纵向居中。

   .alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }})

7. 开启右边栏的Previewer,预览器将工程中的@Entry作为实现入口,自动实现预览。

在这里插入图片描述

此处需要选中@Entry所在的文件,预览器才能顺利打开。

8. 修改APP的名称为“HMOS世界入门版”。修改entry/src/main/resources/base/element/string.json文件,将EntryAbility_label的value修改为“HMOS世界入门版”。

{"string": [{"name": "module_desc","value": "module description"},{"name": "EntryAbility_desc","value": "description"},{"name": "EntryAbility_label","value": "HMOS世界入门版"}]
}

在这里插入图片描述

9. 修改APP的图标。将01_Resources文件夹中的background.png和foreground.png图片进行复制粘贴到entry/src/main/resources/base/media文件夹中,将其中原本的background.png和foreground.png文件替换掉。
在这里插入图片描述

三、页面结构总览

创建好项目后,我们根据需要设计页面的结构进行分析,并确认页面的实现方式。

1. 抽象页面结构

我们想实现的页面效果如右图所示。

在这里插入图片描述

在右图中,我们将页面内的结构抽象三大部分。其中,第1部分为轮播图部分,第2部分为赋能套件部分,第3部分为入门教程部分。

在这里插入图片描述

轮播图部分:可自动播放、展示多张图片的组件,命名为Banner,每一个元素为BannerItem

在这里插入图片描述

赋能套件部分:横向可滑动的组件,命名为Enablement ,由多个EnablementItem组成。

在这里插入图片描述

入门教程部分:纵向可滑动的组件,命名为Tutorial ,由多个TutorialItem组成。

在这里插入图片描述

2. 选择布局实现页面

轮播图部分:Swiper组件提供滑动轮播显示的能力。

在这里插入图片描述
赋能套件部分:Grid组件为网格容器,由“行”和“列”分割的单元格所组成,其中容器内各条目对应一个GridItem组件。如果仅设置行、列数量与占比中的一个,网格单元将按照设置的方向排列,超出Grid显示区域后,Grid拥有可滚动能力。在这部分,可以设置单行显示,则赋能套件部分可以横向滑动。

在这里插入图片描述

入门教程部分:List容器可以轻松高效地显示结构化、可滚动的信息。当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。

在这里插入图片描述

接下来,我们将从最简单的步骤开始,一步步实现这个页面。

四、自定义文本视图

通过更改代码可以自定义视图,或者使用Inspector查询对应视图可更改的代码。 在设计布局时,DevEco Studio的Previewer工具可以实时提供反馈,以便观察代码如何转化为对应布局,反之,也可以根据布局效果调整代码。

1. 更改 @State 装饰器装饰的状态变量message文字,可以驱动视图的更新。

将’Hello World’修改为’快速入门’,这就是本应用程序中第一个页面的标题。可以看到,修改代码后,预览器会即时根据代码更新。

@Entry
@Component
struct Index {@State message: string = '快速入门';build() {RelativeContainer() {Text(this.message).id('HelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }})}.height('100%').width('100%')}
}

在这里插入图片描述

此处修改的是文本内容,需要手动保存(ctrl+s)后,预览器才会更新;如果修改的是相关属性,则不需要手动保存,预览器也会更新。

2. 如右图所示,点击Previewer工具栏的Inspector工具开启Inspector,可以观察到当前组件树,并与预览器交互。

在这里插入图片描述

点击组件树的部件,或者直接点击预览器视图中的元素,代码编辑器会自动跳转并框选至对应的代码块,同时显示相关信息。

在这里插入图片描述

3. 调整文本视图。

修改fontSize属性为24,fontWeight属性为700。可以看到随着代码的修改,预览器中的视图和代码编辑器的代码也会随之改变。

在这里插入图片描述

4. 如右图所示,观察可得,页面整体布局沿垂直方向布局。

在这里插入图片描述

将根容器从RelativeContainer更改为Column。

Column容器可以使组件内的元素沿垂直方向布局。删除Text组件的alignRules属性,这是由于alignRules属性在Column容器中不生效。删除Text组件的id属性,因为不需要识别该组件。

@Entry
@Component
struct Index {@State message: string = '快速入门';build() {Column() {Text(this.message).fontSize(24).fontWeight(700)}.height('100%').width('100%').backgroundColor('#F1F3F5')}
}

在这里插入图片描述

为整体组件添加背景色,取值为’#F1F3F5’。

@Entry
@Component
struct Index {@State message: string = '快速入门';build() {Column() {Text(this.message).fontSize(24).fontWeight(700)}.height('100%').width('100%').backgroundColor('#F1F3F5')}
}

在这里插入图片描述

5. 手动编辑代码,将’快速入门’置于屏幕左上角。

修改文本与屏幕左侧边距,首先将Text组件宽度设置为占满屏幕(100%),并设置文本对齐属性为Start,文本在Text组件内会向左对齐。

   .width('100%').textAlign(TextAlign.Start)

在这里插入图片描述

设置文本左边距,padding属性可以设置内容器向内的边距,此处设置左边距(left)为16。

   .padding({ left: 16 })

设置fontFamily字体属性为’HarmonyHeiTi-Bold’,设置lineHeight行高属性为33。

   .fontFamily('HarmonyHeiTi-Bold').lineHeight(33)

HarmonyHeiTi-Bold字体为较粗的鸿蒙黑体,已在DevEco Studio中内置,直接使用即可。

五、创建Image组件

在上一节中,我们创建了标题视图,接下来需要使用Image组件添加图片。Previewer可以直接预览@Entry装饰器装饰的整个页面,也可以预览由@Preview装饰器装饰的单独组件。 本节中将学习如何单独预览组件视图,并将视图组合进整个页面。

1. 在当前Index.ets文件内建立一个命名为Banner的空组件,并用@Preview装饰器装饰,以便单独预览组件。

struct Index {@State message: string = '快速入门';build() {Column() {Text(this.message).fontSize(24).fontWeight(700).width('100%').textAlign(TextAlign.Start).padding({ left: 16 }).fontFamily('HarmonyHeiTi-Bold').lineHeight(33)}.height('100%').width('100%').backgroundColor('#F1F3F5')}
}@Preview
@Component
struct Banner {build() {}
}

2. 在Banner组件中添加图片。

首先,将01_Resources文件夹中的banner_pic1.png放置在entry -> src -> main -> resources -> base -> media路径下。

在这里插入图片描述

ArkUI提供了Image组件用于显示图片,此处使用$r(‘app.media. 文件名字’)的方式将media文件夹下的图片读取到Image组件内。

设置图片的填充效果为Contain模式,即保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。

@Entry
@Component
struct Index {@State message: string = '快速入门';build() {Column() {Text(this.message).fontSize(24).fontWeight(700).width('100%').textAlign(TextAlign.Start).padding({ left: 16 }).fontFamily('HarmonyHeiTi-Bold').lineHeight(33)}.height('100%').width('100%').backgroundColor('#F1F3F5')}
}@Preview
@Component
struct Banner {build() {Image($r('app.media.banner_pic1')).objectFit(ImageFit.Contain)}
}

3. 预览Banner组件。

将预览器调整至组件预览模式,可以单独观察到组件的视图预览。值得注意的是,此时的Inspector是不可用状态。

在这里插入图片描述

4. 组合标题和图片视图。

在@Entry装饰器装饰的Index组件中引入Banner组件,放在Text的下方,使用预览器预览完整视图。

@Entry
@Component
struct Index {@State message: string = '快速入门';build() {Column() {Text(this.message).fontSize(24).fontWeight('700').width('100%').textAlign(TextAlign.Start).padding({ left: 16 }).fontFamily('HarmonyHeiTi-Bold').lineHeight(33)Banner()}.height('100%').width('100%').backgroundColor('#F1F3F5')}
}@Preview
@Component
struct Banner {build() {Image($r('app.media.banner_pic1')).objectFit(ImageFit.Contain)}
}

在这里插入图片描述

5. 调整图片的属性以达到设计效果。

设置Image组件宽度为铺满整个屏幕

  .width('100%')

在这里插入图片描述

设置图片与标题和边框的边距。

padding属性可以设置内容器向内的边距,此处设置左右边距(left、right)为16,上边距(top)为11。

    .padding({ top: 11, left: 16, right: 16 })

在这里插入图片描述

设置图片四角的圆角值为16。

 .borderRadius(16)

在这里插入图片描述

至此,我们已经学会了如何自定义文本视图,以及使用Image组件加载资源文件展示图片。


在这里插入图片描述

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

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

相关文章

高级编码参数

1.跳帧机制 参考资料:frameskipping-hotedgevideo 跳帧机制用于优化视频质量和编码效率。它通过选择性地跳过某些帧并使用参考帧来预测和重建视频内容,从而减少编码所需的比特率,同时保持较高的视频质量。在视频编码过程中,如果…

CUDA学习-内存访问

一 访存合并 1.1 说明 本部分内容主要参考: 搞懂 CUDA Shared Memory 上的 bank conflicts 和向量化指令(LDS.128 / float4)的访存特点 - 知乎 1.2 share memory结构 图1.1 share memory结构 放在 shared memory 中的数据是以 4 bytes(即 32 bits)作为 1 个 word,依…

「AI学习笔记」深度学习进化史:从神经网络到“黑箱技术”(三)

在这篇文章中,我们将探讨深度学习(DL)这一领域的最新发展,以及它如何从传统机器学习(ML)中独立出来,成为一个独立的生态系统。深度学习的核心思想与我们大脑中的神经网络高度相似,因…

On to OpenGL and 3D computer graphics

2. On to OpenGL and 3D computer graphics 声明:该代码来自:Computer Graphics Through OpenGL From Theory to Experiments,仅用作学习参考 2.1 First Program Square.cpp完整代码 /// // square.cpp // // OpenGL program to draw a squ…

蓝桥杯练习日常|递归-进制转换

蓝桥云课760数的计算 一、递归 题目&#xff1a; 我的解题代码&#xff1a; #include <iostream> using namespace std; int sum0; int main() {// 请在此输入您的代码int n;cin>>n;int fun(int n);fun(n); cout<<sum<<\n;return 0; } // void fu…

WordPress使用(1)

1. 概述 WordPress是一个开源博客框架&#xff0c;配合不同主题&#xff0c;可以有多种展现方式&#xff0c;博客、企业官网、CMS系统等&#xff0c;都可以很好的实现。 官网&#xff1a;博客工具、发布平台和内容管理系统 – WordPress.org China 简体中文&#xff0c;这里可…

镭速大文件传输自动选择压缩算法原理

目前&#xff0c;在文件传输系统里&#xff0c;大家通常会在数据传输之前先把数据压缩一下&#xff0c;这样传输起来更方便。不过&#xff0c;现在的情况是&#xff0c;不同平台都用同一种压缩算法&#xff0c;但其实不同的压缩算法在不同平台上表现差别挺大的。如果不在意平台…

JAVA实战开源项目:在线文档管理系统(Vue+SpringBoot) 附源码

本文项目编号 T 038 &#xff0c;文末自助获取源码 \color{red}{T038&#xff0c;文末自助获取源码} T038&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

【玩转全栈】----Django基本配置和介绍

目录 Django基本介绍&#xff1a; Django基本配置&#xff1a; 安装Django 创建项目 创建app 注册app Django配置路由URL Django创建视图 启动项目 Django基本介绍&#xff1a; Django是一个开源的、基于Python的高级Web框架&#xff0c;旨在以快速、简洁的方式构建高质量的Web…

机器学习周报-文献阅读

文章目录 摘要Abstract 1 相关知识1.1 WDN建模1.2 掩码操作&#xff08;Masking Operation&#xff09; 2 论文内容2.1 WDN信息的数据处理2.2 使用所收集的数据构造模型2.2.1 Gated graph neural network2.2.2 Masking operation2.2.3 Training loss2.2.4 Evaluation metrics 2…

Visual Studio Code修改terminal字体

个人博客地址&#xff1a;Visual Studio Code修改terminal字体 | 一张假钞的真实世界 默认打开中断后字体显示如下&#xff1a; 打开设置&#xff0c;搜索配置项terminal.integrated.fontFamily&#xff0c;修改配置为monospace。修改后效果如下&#xff1a;

新鲜速递:DeepSeek-R1开源大模型本地部署实战—Ollama + MaxKB 搭建RAG检索增强生成应用

在AI技术快速发展的今天&#xff0c;开源大模型的本地化部署正在成为开发者们的热门实践方向。最火的莫过于吊打OpenAI过亿成本的纯国产DeepSeek开源大模型&#xff0c;就在刚刚&#xff0c;凭一己之力让英伟达大跌18%&#xff0c;纳斯达克大跌3.7%&#xff0c;足足是给中国AI产…

SpringCloud基础二(完结)

HTTP客户端Feign 在SpringCloud基础一中&#xff0c;我们利用RestTemplate结合服务注册与发现来发起远程调用的代码如下&#xff1a; String url "http://userservice/user/" order.getUserId(); User user restTemplate.getForObject(url, User.class);以上代码就…

[Java]泛型(一)泛型类

1. 什么是泛型类&#xff1f; 泛型类是指类中使用了占位符类型&#xff08;类型参数&#xff09;的类。通过使用泛型类&#xff0c;你可以编写可以处理多种数据类型的代码&#xff0c;而无需为每种类型编写单独的类。泛型类使得代码更具通用性和可重用性&#xff0c;同时可以保…

react native在windows环境搭建并使用脚手架新建工程

截止到2024-1-11&#xff0c;使用的主要软件的版本如下&#xff1a; 软件实体版本react-native0.77.0react18.3.1react-native-community/cli15.0.1Android Studio2022.3.1 Patch3Android SDKAndroid SDK Platform 34 35Android SDKAndroid SDK Tools 34 35Android SDKIntel x…

GESP2023年12月认证C++六级( 第三部分编程题(1)闯关游戏)

参考程序代码&#xff1a; #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <string> #include <map> #include <iostream> #include <cmath> using namespace std;const int N 10…

UE学习日志#15 C++笔记#1 基础复习

1.C20的import 看看梦开始的地方&#xff1a; import <iostream>;int main() {std::cout << "Hello World!\n"; } 经过不仔细观察发现梦开始的好像不太一样&#xff0c;这个import是C20的模块特性 如果是在VS里编写的话&#xff0c;要用这个功能需要新…

深入解析 C++17 中的 std::not_fn

文章目录 1. std::not_fn 的定义与目的2. 基本用法2.1 基本示例2.2 使用 Lambda 表达式2.3 与其他函数适配器的比较3. 在标准库中的应用3.1 结合标准库算法使用3.1.1 std::find_if 中的应用3.1.2 std::remove_if 中的应用3.1.3 其他标准库算法中的应用4. 高级技巧与最佳实践4.1…

AI大模型开发原理篇-2:语言模型雏形之词袋模型

基本概念 词袋模型&#xff08;Bag of Words&#xff0c;简称 BOW&#xff09;是自然语言处理和信息检索等领域中一种简单而常用的文本表示方法&#xff0c;它将文本看作是一组单词的集合&#xff0c;并忽略文本中的语法、词序等信息&#xff0c;仅关注每个词的出现频率。 文本…

创建前端项目的方法

目录 一、创建前端项目的方法 1.前提&#xff1a;安装Vue CLI 2.方式一&#xff1a;vue create项目名称 3.方式二&#xff1a;vue ui 二、Vue项目结构 三、修改Vue项目端口号的方法 一、创建前端项目的方法 1.前提&#xff1a;安装Vue CLI npm i vue/cli -g 2.方式一&…