• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

HarmonyOS鸿蒙——Text文本组件

武飞扬头像
李子捌
帮助3

本文已收录于专栏

❤️《鸿蒙开发》❤️

持续更新HarmonyOS(鸿蒙系统)学习系列文章,系统入门学习鸿蒙!


一、简介

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 表示文本靠左对齐。 可以设置取值项如表中所列,也可以使用“
    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);
    }

}

学新通

演示效果:
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibbagf
系列文章
更多 icon
同类精品
更多 icon
继续加载