如何在Android中用TextView实现词组高亮显示?
- 内容介绍
- 文章标签
- 相关推荐
本文共计656个文字,预计阅读时间需要3分钟。
这篇文章将详细介绍如何在Android中使用TextView实现词组高亮,内容质量较高。由于内容较长,以下为摘要:
本文将深入探讨在Android中利用TextView实现词组高亮的技术。文章内容详实,旨在帮助读者全面了解相关技术。以下为文章摘要:
1. 引言:简要介绍TextView在Android中的应用及其特点。
2.词组高亮技术原理:解释如何实现词组高亮。
3.实现步骤:详细介绍如何在Android中实现词组高亮。
4.代码示例:提供实现词组高亮的代码示例。
5.总结:总结文章要点,并展望未来发展方向。
希望读者阅读完本文后,能够掌握在Android中使用TextView实现词组高亮的技术。
这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此自由互联小编分享给大家做个参考,希望大家阅读完这篇文这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此自由互联小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
HighlightTextView
Android文本高亮控件,基于View实现。
特点
文本高亮
单词自动换行
高亮词组保持在同一行显示
主要逻辑:
两个 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实现词组高亮就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
本文共计656个文字,预计阅读时间需要3分钟。
这篇文章将详细介绍如何在Android中使用TextView实现词组高亮,内容质量较高。由于内容较长,以下为摘要:
本文将深入探讨在Android中利用TextView实现词组高亮的技术。文章内容详实,旨在帮助读者全面了解相关技术。以下为文章摘要:
1. 引言:简要介绍TextView在Android中的应用及其特点。
2.词组高亮技术原理:解释如何实现词组高亮。
3.实现步骤:详细介绍如何在Android中实现词组高亮。
4.代码示例:提供实现词组高亮的代码示例。
5.总结:总结文章要点,并展望未来发展方向。
希望读者阅读完本文后,能够掌握在Android中使用TextView实现词组高亮的技术。
这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此自由互联小编分享给大家做个参考,希望大家阅读完这篇文这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此自由互联小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
HighlightTextView
Android文本高亮控件,基于View实现。
特点
文本高亮
单词自动换行
高亮词组保持在同一行显示
主要逻辑:
两个 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实现词组高亮就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

