HarmonyOS(鸿蒙)——Text(文本)组件介绍

举报
李子捌 发表于 2021/11/24 19:54:49 2021/11/24
【摘要】 一、简介Text是用来显示字符串的组件,在界面上显示为一块文本区域。Text作为一个基本组件,有很多扩展,常见的有按钮组件Button,文本编辑组件TextField。Text组件继承自Componet。华为官方学习地址:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-tex...

一、简介

Text是用来显示字符串的组件,在界面上显示为一块文本区域。Text作为一个基本组件,有很多扩展,常见的有按钮组件Button,文本编辑组件TextField。

Text组件继承自Componet。

华为官方学习地址:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-text-0000001050729534

二、属性

Text组件支持的属性比较多,但是由于其非常重要,因此每个属性我会根据官网文档一一实现。

2.1 text

属性名称

中文描述

取值

取值说明

使用案例

text

显示文本

string类型

可以直接设置文本字串,也可以引用string资源(推荐使用)。

ohos:text="熄屏时间"

ohos:text="$string:test_str"

代码演示:

 <Text
       ohos:id="$+id:text"
       ohos:height="match_content"
       ohos:width="match_content"
       ohos:text="李子捌"/>

显示效果:

2.2 text_size

属性名称

中文描述

取值

取值说明

使用案例

text_size

文本大小


float类型

表示字体大小的float类型。

可以是浮点数值,其默认单位为px;也可以是带px/vp/fp单位的浮点数值;也可以引用float资源。

ohos:text_size="30"

ohos:text_size="16fp"

ohos:text_size="$float:size_value"

代码演示:

 <Text
       ohos:id="$+id:text"
       ohos:height="match_content"
       ohos:width="match_content"
       ohos:text="150px"
       ohos:text_size="150px"/>

显示效果:

2.3 text_color

属性名称

中文描述

取值

取值说明

使用案例

text_color

文本颜色

color类型

可以直接设置色值,也可以引用color资源。

ohos:text_color="#A8FFFFFF"

ohos:text_color="$color:black"

代码演示:

<Text
      ohos:id="$+id:text"
      ohos:height="match_content"
      ohos:width="match_content"
      ohos:text="blue"
      ohos:text_size="100px"
      ohos:text_color="blue"
      />

演示效果:

使用HEX效果:

2.4 text_font

属性名称

中文描述

取值

取值说明

使用案例

text_font

字体


sans-serif

可以设置的字体如表中所列。

ohos:text_font="HwChinese-medium"

sans-serif-medium

HwChinese-medium

sans-serif-condensed

sans-serif-condensed-medium

monospace

代码演示:

<Text
      ohos:id="$+id:text"
      ohos:height="match_content"
      ohos:width="match_content"
      ohos:text="李子捌"
      ohos:text_size="100px"
      ohos:text_color="#000000"
      ohos:text_font="HwChinese-medium"
      />

演示效果:

2.5 italic

属性名称

中文描述

取值

取值说明

使用案例

italic

文本是否斜体字体

boolean类型

可以直接设置true/false,也可以引用boolean资源。

ohos:italic="true"

ohos:italic="$boolean:true"

代码演示:

<Text
      ohos:id="$+id:text"
      ohos:height="match_content"
      ohos:width="match_content"
      ohos:text="李子捌"
      ohos:text_size="100px"
      ohos:text_color="#000000"
      ohos:text_font="sans-serif"
      ohos:italic="true"
      />

演示效果:

2.6 text_weight

属性名称

中文描述

取值

取值说明

使用案例

text_weight

字重

integer类型

表示字体大小的integer类型。也可以引用integer资源。

ohos:text_weight="100"

ohos:text_weight="$integer:100"

代码演示:

    <Text
        ohos:id="$+id:text"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text="Liziba"
        ohos:text_size="100px"
        ohos:text_color="#0000FF"
        ohos:text_font="serif"
        ohos:italic="true"
        ohos:text_weight="100"
        />

演示效果:

text_weight = 100

text_weight = 600

2.7 background_element

常用的背景如常见的文本背景、按钮背景,可以采用XML格式放置在graphic目录下。

在Project窗口,打开“entry > src > main > resources > base”,右键点击“graphic”文件夹,选择“New > File”,命名为“background_text.xml”,在background_text.xml中定义文本的背景。


代码演示:

<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
       ohos:shape="rectangle">

    <!--设置圆角弧度-->
    <corners ohos:radius="20px"/>
    <!--设置背景色-->
    <solid ohos:color="#878787"/>

</shape>

演示效果:

2.8 text_alignment

属性名称

中文描述

取值

取值说明

使用案例

text_alignment

文本对齐方式

left

表示文本靠左对齐。

可以设置取值项如表中所列,也可以使用“|”进行多项组合。

ohos:text_alignment="top"

ohos:text_alignment="top|left"

top

表示文本靠顶部对齐。

right

表示文本靠右对齐。

bottom

表示文本靠底部对齐。

horizontal_center

表示文本水平居中对齐。

vertical_center

表示文本垂直居中对齐。

center

表示文本居中对齐。

start

表示文本靠起始端对齐。

end

表示文本靠结尾端对齐。

代码演示:

<!-- 结合width和height可以很方便的查看text_alignment的效果 -->
<Text
      ohos:id="$+id:text"
      ohos:width="300vp"
      ohos:height="100vp"
      ohos:text="Liziba"
      ohos:text_size="100px"
      ohos:text_color="#0000FF"
      ohos:text_font="serif"
      ohos:italic="true"
      ohos:text_weight="100"
      ohos:left_margin="15vp"
      ohos:bottom_margin="15vp"
      ohos:right_padding="15vp"
      ohos:left_padding="15vp"
      ohos:text_alignment="bottom|horizontal_center"
      ohos:background_element="$graphic:background_text"
      />

演示效果:

2.9 multiple_lines

属性名称

中文描述

取值

取值说明

使用案例

multiple_lines

多行模式设置

boolean类型

可以直接设置true/false,也可以引用boolean资源。

ohos:multiple_lines="true"

ohos:multiple_lines="$boolean:true"

代码演示:

<!--multiple_lines换行-->
<Text
      ohos:id="$+id:text"
      ohos:width="300px"
      ohos:height="match_content"
      ohos:text="LizibaLiziba"
      ohos:text_size="100px"
      ohos:text_color="#0000FF"
      ohos:text_font="serif"
      ohos:italic="true"
      ohos:text_weight="100"
      ohos:max_text_lines="2"
      ohos:multiple_lines="true"
      ohos:background_element="$graphic:background_text"
      />

演示效果:

2.10 max_text_lines

属性名称

中文描述

取值

取值说明

使用案例

max_text_lines

文本最大行数

integer类型

可以直接设置整型数值,也可以引用integer资源。

ohos:max_text_lines="2"

ohos:max_text_lines="$integer:two"

代码演示:

<!--
    multiple_lines 换行
    max_text_lines 最多展示行数
    LizibaLizibaLiziba 三个只展示了2行
    -->
<Text
      ohos:id="$+id:text"
      ohos:width="300px"
      ohos:height="match_content"
      ohos:text="LizibaLizibaLiziba"
      ohos:text_size="100px"
      ohos:text_color="#0000FF"
      ohos:text_font="serif"
      ohos:italic="true"
      ohos:text_weight="100"
      ohos:multiple_lines="true"
      ohos:max_text_lines="2"
      ohos:background_element="$graphic:background_text"
      />

演示效果:

2.11 auto_font_size

属性名称

中文描述

取值

取值说明

使用案例

auto_font_size

是否支持文本自动调整文本字体大小

boolean类型

可以直接设置true/false,也可以引用boolean资源。

ohos:auto_font_size="true"

ohos:auto_font_size="$boolean:true"

代码演示:

方法一:

<!--
        auto_font_size 自动调节文字大小
        max_text_lines="1" 我这里设置行数为1,就非常容易展示效果
    -->
<Text
      ohos:id="$+id:text"
      ohos:width="300px"
      ohos:height="match_content"
      ohos:text="LizibaLizibaLiziba"
      ohos:text_size="100px"
      ohos:text_color="#0000FF"
      ohos:text_font="serif"
      ohos:italic="true"
      ohos:text_weight="100"
      ohos:max_text_lines="1"
      ohos:auto_font_size="true"
      ohos:background_element="$graphic:background_text"
      />

演示效果:

方法二:

<!--
        auto_font_size 自动调节文字大小
        max_text_lines="1" 我这里设置行数为1,就非常容易展示效果
    -->
<Text
      ohos:id="$+id:text"
      ohos:width="300px"
      ohos:height="match_content"
      ohos:text="L"
      ohos:text_size="100px"
      ohos:text_color="#0000FF"
      ohos:text_font="serif"
      ohos:italic="true"
      ohos:text_weight="100"
      ohos:max_text_lines="1"
      ohos:auto_font_size="true"
      ohos:background_element="$graphic:background_text"
      />
package com.liziba.demo.slice;

import com.liziba.demo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.agp.components.Component;
import ohos.agp.components.Text;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        // 每次点击修改内容,演示字体的自动调整
        Text text = (Text) this.findComponentById(ResourceTable.Id_text);
        text.setClickedListener(component -> {
            text.setText(text.getText() + "L");
        });
    }
}


演示效果:

开始点击前

连续点击后

2.12 AutoScrolling

当文本过长时,可以设置跑马灯效果,实现文本滚动显示。前提是文本换行关闭且最大显示行数为1,默认情况下即可满足前提要求。

代码演示:

<Text
      ohos:id="$+id:text"
      ohos:width="300px"
      ohos:height="match_content"
      ohos:text="LizibaLizibaLizibaLiziba"
      ohos:text_size="100px"
      ohos:text_color="#0000FF"
      ohos:text_font="serif"
      ohos:italic="true"
      ohos:text_weight="100"
      ohos:background_element="$graphic:background_text"
      />
package com.liziba.demo.slice;

import com.liziba.demo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Component;
import ohos.agp.components.Text;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        Text text = (Text) this.findComponentById(ResourceTable.Id_text);
        // 跑马灯效果
        text.setTruncationMode(Text.TruncationMode.AUTO_SCROLLING);
        // 始终处于自动滚动状态
        text.setAutoScrollingCount(Text.AUTO_SCROLLING_FOREVER);
        //启动跑马灯效果
        text.startAutoScrolling();
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

}

演示效果:



👇🏻 关注公众号 获取更多资料👇🏻


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。