当前位置 : 主页 > 网络编程 > 其它编程 >

怎么在Android中利用TextView实现词组高亮

来源:互联网 收集:自由互联 发布时间:2023-07-02
这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此自由互联小编分享给大家做个参考,希望大家阅读完这篇文 这篇文章将为大家详细讲解
这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此自由互联小编分享给大家做个参考,希望大家阅读完这篇文

这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此自由互联小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

HighlightTextView

Android文本高亮控件,基于View实现。

特点

  • 文本高亮

  • 单词自动换行

  • 高亮词组保持在同一行显示

怎么在Android中利用TextView实现词组高亮

主要逻辑:

两个 Paint 负责绘制不同的文字

在每次绘制之前计算将要绘制的文本是否会超出屏幕宽度,如果超出则换行

protectedvoidonDraw(Canvascanvas){super.onDraw(canvas);floatx_draw=getPaddingLeft();floaty_draw=getPaddingTop()+dfPaint.getTextSize();for(ExtendTextt:extendTexts){Paintpaint=t.isHighlight?hlPaint:dfPaint;floattextLen=paint.measureText(t.textUnit);if(x_draw+textLen>width){x_draw=getPaddingLeft();y_draw+=paint.getTextSize();}canvas.drawText(t.textUnit,x_draw,y_draw,paint);x_draw+=textLen;}}

Demo

Java:

publicclassMainActivityextendsActivity{privatefinalstaticStringTEXT="";privatefinalstaticString[]HIGHLIGHT={};@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);HighLightTextViewhlTv=(HighLightTextView)findViewById(R.id.hlTv);hlTv.setDisplayedText(TEXT,Arrays.asList(HIGHLIGHT));hlTv.setDefaultColor(Color.BLACK);hlTv.setHighlightColor(ContextCompat.getColor(this,R.color.colorPrimary));}}

XML:

Methods:

method 方法description 描述setDefaultColor(int color)设置默认显示颜色setHighlightColor(int color)设置高亮颜色setDisplayedText(String text, List highlights)设置显示的文本和高亮词组setTextSize(float size)设置字体大小

xml value:

app:defaultColor="@color/colorPrimary"app:highlightColor="@color/colorAccent"app:text="@string/app_name"app:textSize="16sp"

关于怎么在Android中利用TextView实现词组高亮就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

上一篇:DRP总结—Model1和Model2的区别
下一篇:没有了
网友评论