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

  介绍

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

<强> HighlightTextView

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

<强>特点

<李>

文本高亮

<李>

单词自动换行

<李>

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

怎么在Android中利用TextView实现词组高亮“> <br/> </p> <p> <强>主要逻辑:</强> </p> <p>两个油漆负责绘制不同的文字<br/> </p> <p>在每次绘制之前计算将要绘制的文本是否会超出屏幕宽度,如果超出则换行<br/> </p> <pre类= protected  void  onDraw (Canvas 画布),{   super.onDraw才能(画布);   float 才能;x_draw =, getPaddingLeft ();   float 才能;y_draw =, getPaddingTop (), +, dfPaint.getTextSize ();   for 才能;(ExtendText  t : extendTexts), {   ,,Paint  Paint =, t.isHighlight  ?, hlPaint :, dfPaint;   ,,float  textLen =, paint.measureText (t.textUnit);   ,,if (时间+ x_draw  textLen 祝辞,宽度),{   ,,,x_draw =, getPaddingLeft ();   ,,,y_draw  +=, paint.getTextSize ();   ,,}   ,,canvas.drawText (t.textUnit, x_draw,, y_draw,,油漆);   ,,x_draw  +=, textLen;   ,,}   以前,}

<强>演示

<强> Java:

public  class  MainActivity  extends  Activity  {   ,private  final  static  String  TEXT =,““   ,private  final  static  String [], HIGHLIGHT =, {};      ,@Override   ,protected  void  onCreate (Bundle  savedInstanceState), {   super.onCreate才能(savedInstanceState);   ,,setContentView (R.layout.activity_main);   HighLightTextView 才能;hlTv =, (HighLightTextView), findViewById (R.id.hlTv);   hlTv.setDisplayedText才能(文本、,arrays . aslist(突出));   hlTv.setDefaultColor才能(Color.BLACK);   hlTv.setHighlightColor才能(ContextCompat.getColor (,, R.color.colorPrimary));      ,}   }

XML:

& lt; com.jy.highlighttextview.HighLightTextView   ,android: id=癅 + id/hlTv"   ,android: layout_width=癿atch_parent"   ,android: layout_height=皐rap_content"   ,android:填充=? dp"   ,应用:textSize=?6 sp",/在

方法:

方法方法描述描述setDefaultColor (int颜色)设置默认显示颜色setHighlightColor (int颜色)设置高亮颜色setDisplayedText(字符串文本,List亮点)设置显示的文本和高亮词组setTextSize(浮动大小)设置字体大小

xml值:

应用:defaultColor=癅color/colorPrimary"   应用:highlightColor=癅color/colorAccent"   应用:文本=癅string/app_name"   应用:textSize=?6 sp"

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