赞
踩
从2021年6月2号开始,鸿蒙系统已经完全开源。
目前学习鸿蒙开发正当其时,如果你之前学习过Android开发,那么鸿蒙完全可以直接上手。
不过,博主写的鸿蒙开发课程任何人都可以学习,因为都是从基础的组件开始讲解。下面,博主将从Text组件入门,来一步步讲解鸿蒙开发的要点。
Text是用来显示字符串的组件,在界面上显示为一块文本区域。示例代码如下所示:
<Text
ohos:id="$+id:text_helloworld"
ohos:height="match_content"
ohos:width="match_content"
ohos:layout_alignment="center"
ohos:background_element="$graphic:background_ability_main"
ohos:padding="10vp"
ohos:text_font="serif"
ohos:text="$string:HelloWorld"
ohos:element_left="$media:icon"
ohos:text_size="50vp"/>
这里,是通过XML布局文件来创建Text文本组件。
运行之后,效果如下:
属性 | 含义 |
---|---|
id | 组件名称,方便在代码中获取组件 |
height|width | 宽度与高度,match_content为根据内容大小自适应 |
layout_alignment | 文本对其方式,center为水平垂直居中 |
background_element | 文本背景,可以通过graphic资源文件设置边框颜色等等数据 |
padding | 内间距 |
text_font | 字体选择,可选择的字体有:sans-serif,HwChinese-medium等 |
text | 文本的内容,这里为Hello World,引用的string资源文件内容 |
element_left | 文字左侧图片,这里为鸿蒙默认图标 |
text_size | 字体大小 |
当然,Text组件还有很多其他的属性,相对来说用的比较少,比如max_text_lines文本最大行,这些在后面的组件讲解。
上面,我们都是通过XML布局文件进行Text组件的设置以及操作。但是其第一个属性就是id,通过它我们可以在代码中对Text组件做更多的事情。
示例如下:
public class MainAbilitySlice extends AbilitySlice { private Text hw_text; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); this.hw_text=(Text)findComponentById(ResourceTable.Id_text_helloworld); this.hw_text.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { if(hw_text.getText().equals("Hello World")){ hw_text.setText("Harmony OS"); }else{ hw_text.setText("Hello World"); } } }); } }
这里,我们给Text组件设置了点击事件,当Text组件文本为Hello World时,替换为Harmony OS。当Text组件文本不是Hello World时,替换为Hello World。
简单的理解,就是“Harmony OS”与“Hello World”两个文本点击后相互替换。
在众多的开发中,讲解文本组件时,都会介绍其跑马灯效果的实现。那么博主讲解鸿蒙也不例外,我们来实现鸿蒙系统文本组件的跑马灯效果。
示例如下:
public class MainAbilitySlice extends AbilitySlice { private Text hw_text; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); this.hw_text=(Text)findComponentById(ResourceTable.Id_text_helloworld); this.hw_text.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { if(hw_text.getText().equals("Hello World")){ hw_text.setText("Harmony OS"); }else{ hw_text.setText("Hello World"); } } }); // 跑马灯效果 this.hw_text.setTruncationMode(Text.TruncationMode.AUTO_SCROLLING); // 始终处于自动滚动状态 this.hw_text.setAutoScrollingCount(Text.AUTO_SCROLLING_FOREVER); // 启动跑马灯效果 this.hw_text.startAutoScrolling(); } }
这里,我们只需要增加三行即可。
但是如果直接运行的话,肯定没有效果,因为文本的宽度是自适应内容宽度,而跑马灯之所以能够实现,是因为其宽度小于文本宽度。
所以,我们需要改变文本的宽度,将其设置为固定的大小,且小于文本字符串,XML修改代码如下:
ohos:width="175vp"
运行之后,效果如首图所示。
资源文件引用内容:
graphic:background_ability_main:
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:shape="rectangle">
<corners
ohos:radius="50"/>
<solid
ohos:color="#FF0000"/>
</shape>
string:HelloWorld:
{ "string": [ { "name": "app_name", "value": "鸿蒙组件" }, { "name": "mainability_description", "value": "Java_Phone_Empty Feature Ability" }, { "name": "HelloWorld", "value": "Hello World" } ] }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。