如何在Android中用TextView实现词组高亮显示?

2026-04-03 02:121阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计656个文字,预计阅读时间需要3分钟。

如何在Android中用TextView实现词组高亮显示?

这篇文章将详细介绍如何在Android中使用TextView实现词组高亮,内容质量较高。由于内容较长,以下为摘要:

本文将深入探讨在Android中利用TextView实现词组高亮的技术。文章内容详实,旨在帮助读者全面了解相关技术。以下为文章摘要:

1. 引言:简要介绍TextView在Android中的应用及其特点。

2.词组高亮技术原理:解释如何实现词组高亮。

3.实现步骤:详细介绍如何在Android中实现词组高亮。

4.代码示例:提供实现词组高亮的代码示例。

5.总结:总结文章要点,并展望未来发展方向。

希望读者阅读完本文后,能够掌握在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实现词组高亮就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

本文共计656个文字,预计阅读时间需要3分钟。

如何在Android中用TextView实现词组高亮显示?

这篇文章将详细介绍如何在Android中使用TextView实现词组高亮,内容质量较高。由于内容较长,以下为摘要:

本文将深入探讨在Android中利用TextView实现词组高亮的技术。文章内容详实,旨在帮助读者全面了解相关技术。以下为文章摘要:

1. 引言:简要介绍TextView在Android中的应用及其特点。

2.词组高亮技术原理:解释如何实现词组高亮。

3.实现步骤:详细介绍如何在Android中实现词组高亮。

4.代码示例:提供实现词组高亮的代码示例。

5.总结:总结文章要点,并展望未来发展方向。

希望读者阅读完本文后,能够掌握在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实现词组高亮就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。