android中怎么自定义带拼音音调textview-亚博电竞手机版
开发技术
2021年06月13日 23:19
0
android中怎么自定义带拼音音调textview,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1.拼音textview,简单的为把拼音数组和汉字数组结合在一起多行显示
importandroid.annotation.suppresslint; importandroid.content.context; importandroid.graphics.canvas; importandroid.graphics.color; importandroid.graphics.paint; importandroid.text.textpaint; importandroid.util.attributeset; importandroid.widget.textview; importcom.cgtn.chineselearning.utils.chinesecharacter2spell; importcom.cgtn.common.utils.convertutils; @suppresslint("appcompatcustomview") publicclassspelltextviewextendstextview{ privatestring[]pinyin; privatestring[]chinese; privatetextpainttextpaintspell=newtextpaint(paint.anti_alias_flag); privatetextpainttextpaintchinese=newtextpaint(paint.anti_alias_flag); privateintfontsizespell=convertutils.dp2px(12); privateintfontsizechinese=convertutils.dp2px(12); privateintcolorspell=color.parsecolor("#1b97d6"); privateintcolorchinese=color.parsecolor("#000000"); publicspelltextview(contextcontext){ super(context); } publicspelltextview(contextcontext,attributesetattrs){ super(context,attrs); } publicspelltextview(contextcontext,attributesetattrs,intdefstyleattr){ super(context,attrs,defstyleattr); inittextpaint(); } publicvoidinittextpaint(){ floatdenity=getresources().getdisplaymetrics().density; textpaintspell.setstrokewidth(denity); textpaintchinese.setstrokewidth(denity); textpaintspell.settextalign(paint.align.left); textpaintchinese.settextalign(paint.align.left); //设置字体大小 textpaintspell.settextsize(fontsizespell); textpaintchinese.settextsize(fontsizechinese); textpaintspell.setcolor(colorspell); textpaintchinese.setcolor(colorchinese); } @override protectedvoidondraw(canvascanvas){ floatwidthmesure=0f; intcomlum=1; floatpinyinwidth; if(pinyin!=null&&pinyin.length>0){ for(intindex=0;indexgetwidth()){ comlum ; widthmesure=0; } canvas.drawtext(pinyin[index],widthmesure,(comlum*2-1)*(textpaintchinese.getfontspacing()),textpaintspell); canvas.drawtext(chinese[index], widthmesure (textpaintspell.measuretext(pinyin[index])-textpaintchinese.measuretext(chinese[index]))/2, (comlum*2)*(textpaintchinese.getfontspacing()),textpaintchinese); if(index 1 2.汉字转拼音使用 implementation ‘com.belerweb:pinyin4j:2.5.0'
publicstaticstring[]getpinyinstring(stringcharacter){ if(character!=null&&character.length()>0){ string[]pinyin=newstring[character.length()]; hanyupinyinoutputformatformat=newhanyupinyinoutputformat(); format.setcasetype(hanyupinyincasetype.lowercase); format.settonetype(hanyupinyintonetype.with_tone_mark); format.setvchartype(hanyupinyinvchartype.with_u_unicode); for(intindex=0;index关于android中怎么自定义带拼音音调textview问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。
展开全文