【JAVA UI】HarmonyOS 如何使用TinyPinyin类库
参考资料
前言:TinyPinYin是一个适用于Java和Android、HarmonyOS的快速,低内存的汉字转拼音库。码云地址TinyPinYin,其使用方法已在API讲解中有详细介绍,本文的主要目的主要是对容易造成疑问的地方进行补充说明
代码实现
1、集成类库
在项目级bulid.gradle添加如下代码
buildscript {
    repositories {
         .......
        mavenCentral()
    }
    .....
}

在应用级添加如下代码
dependencies {
   .......
    implementation 'io.openharmony.tpc.thirdlib:TinyPinyin-Library:1.0.4'
}

2、api讲解
汉字转化拼音
String tv = Pinyin.toPinyin("哈哈", "");

判断是否字符
     String test = "34我23们";
     char[] chars = test.toCharArray();
          for (char aChar : chars) {
              LogUtil.error(TAG, Pinyin.isChinese(aChar) + "");
              }

多音字
    Pinyin.init(Pinyin.newConfig().with(new PinyinMapDict() {
                      @Override
                      public Map<String, String[]> mapping() {
                          HashMap<String, String[]> map = new HashMap<String, String[]>();
                          map.put("中国重庆", new String[]{"ZHONG", "GUO", "CHONG", "QING"});
                          return map;
                      }
                  }));
     result.setText(Pinyin.toPinyin("中国重庆", ""));

添加分隔符
   String tv =   Pinyin.toPinyin("草原牧羊", "~");

3、xml布局绘画
在xml界面绘画两个“text组件”,其中一个用于现在“汉字转化为拼音”,另外一个Text组件用于实现点击“汉字转化为拼音”的Text组件按钮,转化为拼音的结果用于显示结果,代码如下
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="top"
    ohos:orientation="vertical">
    <Text
        ohos:id="$+id:text_helloworld"
        ohos:height="100vp"
        ohos:width="match_parent"
        ohos:text_alignment="center"
        ohos:background_element="#ed6262"
        ohos:layout_alignment="horizontal_center"
        ohos:multiple_lines="true"
        ohos:text="汉字转化为拼音"
        ohos:text_color="black"
        ohos:text_size="25vp"
        />
    <Text
        ohos:height="match_parent"
        ohos:width="match_parent"
        ohos:top_margin="10vp"
        ohos:text_alignment="top|left"
        ohos:text_size="25vp"
        ohos:id="$+id:result"/>
</DirectionalLayout>

4、java代码实现
java实现代码如下
package com.newdemo.myapplication.slice;
import com.example.library.github.promeg.pinyinhelper.Pinyin;
import com.example.library.github.promeg.pinyinhelper.PinyinMapDict;
import com.newdemo.myapplication.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 {
    private Text mTextResult;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        mTextResult=findComponentById(ResourceTable.Id_result);
        findComponentById(ResourceTable.Id_text_helloworld).setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                String tv = Pinyin.toPinyin("哈哈", "");
                mTextResult.setText("转化的结果:"+tv);
            }
        });
    }
}

运行效果
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
【JAVA UI】HarmonyOS 如何使用TinyPinyin类库的更多相关文章
- HarmonyOS Java UI之DirectionalLayout布局
		
在之前的章节中我使用的是Java 代码构建UI界面,从本节开始,将使用XML构建UI界面. 使用XML构建UI(默认你已经会在项目中创建XML布局文件)界面相对Java代码构建的好处是:结构清晰,代码 ...
 - HarmonyOS Java UI之DependentLayout布局示例
		
DependentLayout简介 DependentLayout意为相对位置布局,与DirectionalLayout相比较有更多的排布方式,每个组件可以指定相对于其他同级组件的位置,也可以指定相对 ...
 - 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
		
最近研发BDC 云开发部署平台的数据路由及服务管理器意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提 ...
 - 转载:Java知多少(8)类库及其组织结构
		
转载地址:http://www.cnblogs.com/Coda/p/4346151.html Java知多少(8)类库及其组织结构 Java 官方为开发者提供了很多功能强大的类,这些类被分别放在各个 ...
 - 【Java基础】Java开发过程中的常用工具类库
		
目录 Java开发过程中的常用工具类库 1. Apache Commons类库 2. Guava类库 3. Spring中的常用工具类 4. 其他工具 参考 Java开发过程中的常用工具类库 1. A ...
 - HarmonyOS Java UI之StackLayout布局示例
		
StackLayout简介 StackLayout意为堆叠布局,用于在屏幕上保留一个区域来显示组件,实现特殊的功能.通常,堆叠布局中只应该放置一个子组件,如果存在多个子组件,则显示最新的组件.这个布局 ...
 - 【HarmonyOS】【Demo】【JAVA UI】 鸿蒙怎么在Webview上添加组件
		
在大家HarmonyOS开发中,Webview组件上添加组件可能是很常见的功能了,HarmonyOS的webview和Android的webwiew存在一点点区别,今天来实现这个功能 使用项目布局显示 ...
 - 【Java UI】HarmonyOS添加日历事件
		
参考资料 CalendarDataHelper Events Reminders api讲解 添加权限 在config.json添加权限代码如下 "reqPermissions" ...
 - 【开源项目12】Retrofit – Java(Android) 的REST 接口封装类库
		
Retrofit官网:http://square.github.io/retrofit/ Retrofit 和Java领域的ORM概念类似, ORM把结构化数据转换为Java对象,而Retrofit ...
 
随机推荐
- curl-URL请求
			
模拟HTTP请求,通过访问URL获取HTTP响应. 语法 curl [选项] 访问URL 选项 --connect-timeout SECONDS 设置最大请求时间. -C, --continue-a ...
 - 满满干货!手把手教你实现基于eTS的分布式计算器
			
最近收到很多小伙伴反馈,想基于扩展的TS语言(eTS)进行HarmonyOS应用开发,但是不知道代码该从何处写起,从0到1的过程让新手们抓狂. 本期我们将带来"分布式计算器"的开发 ...
 - Dockerfile 使用 SSH
			
如果在书写 Dockerfile 时,有些命令需要使用到 SSH 连接,比如从私有仓库下载文件等,那么我们应该怎么做呢? Dockerfile 使用 SSH Dockerfile 文件配置 为了使得 ...
 - dotnet core 也能协调分布式事务啦!
			
2022 年 5 月 24 日,我们发布了 DBPack v0.1.0 版本,该版本主要 release 了分布式事务功能.在我们的规划里,DBPack 是要支持所有微服务开发语言协调分布式事务的,但 ...
 - TypeScript(3)基础类型
			
基础类型 TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用. 布尔值 最基本的数据类型就是简单的true/false值,在JavaScri ...
 - JVM 输出 GC 日志导致 JVM 卡住,我 TM 人傻了
			
本系列是 我TM人傻了 系列第七期[捂脸],往期精彩回顾: 升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了:https://zhuanlan.zhihu.com/p/3970425 ...
 - 你真的很了解printf函数吗?
			
对C语言中经常使用的printf这个库函数,你是否真的吃透了呢? 系统化的学习C语言程序设计,是不是看过一两本C语言方面的经典著作就足够了呢?答案是显而易见的:不够.通过这种典型的入门级的学习方式,是 ...
 - SAP 文本框多行输入
			
REPORT zjw_test01. CONSTANTS: gc_text_line_length TYPE i VALUE 72. TYPES: text_table_type(gc_text_li ...
 - <%= %>  <%- %> <% %>是什么意思?
			
.ejs文件后缀的数据渲染,这是服务器端的.把 .html改成 .ejs, (1)<%= %>相当于html中的innerTEXT,导出不包含标签 . (2)<%- %>相当于 ...
 - Python量化-如何获取实时股票信息
			
如何获取实时股票信息 股票信息的接口有很多,之前大家常用的是新浪的,但在年初的时候,新浪的接口突然不能使用,给大家造成了很大的困扰,为此网上也有很多教程教大家如何从新浪获取数据,跟着教程弄了半天也不行 ...