TextView 高亮字体局部点击
来源:互联网 发布:js文件格式化工具 编辑:程序博客网 时间:2024/05/16 09:29
如题 点击TextView中的某个高亮区域响应点击事件
简单的封装了下,成下面几个类
CommonUtil.java
public class CommonUtil { /** * Fistly before call this method you should below method first to make sure no backgroud color * when you click * textView.setHighlightColor(getResources().getColor(android.R.color.transparent)); * * finally dont forget to call below to make sure click enable * textView.setMovementMethod(LinkMovementMethod.getInstance()); * * */ public static SpannableString generateAreaClickString(View.OnClickListener onClickListener ,String completeStr, String highLightStr, Context context,boolean needUnderLine){ if(completeStr != null && !completeStr.equals("")){ SpannableString spanableInfo = new SpannableString(completeStr); int index = completeStr.lastIndexOf(highLightStr); if(index != -1){ spanableInfo.setSpan(new SpanAreaClick(onClickListener, context,needUnderLine),index,index+highLightStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spanableInfo; } } return null; }}
SpanAreaClick.java
public class SpanAreaClick extends ClickableSpan { private final View.OnClickListener mListener; private Context mContext; private boolean mNeedUnderLine; public SpanAreaClick(View.OnClickListener l, Context context ,boolean needUnderLine) { mListener = l; mContext = context; mNeedUnderLine = needUnderLine; } @Override public void onClick(View v) { mListener.onClick(v); } @Override public void updateDrawState(TextPaint ds) { ds.setColor(mContext.getResources().getColor(R.color.colorPrimary)); ds.setUnderlineText(mNeedUnderLine); }}
MainActivity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView=(TextView) findViewById(R.id.tv_content);// to make sure no backgroud color when click textView.setHighlightColor(getResources().getColor(android.R.color.transparent)); SpannableString spanableInfo = CommonUtil.generateAreaClickString(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "super man", Toast.LENGTH_SHORT).show(); } },"Hello I am super . How are you doing.","super",MainActivity.this,true); textView.setText(spanableInfo);// to make sure clickable textView.setMovementMethod(LinkMovementMethod.getInstance()); }}
阅读全文
0 0
- TextView 高亮字体局部点击
- Android TextView 高亮字体并添加点击事件
- 让TextView展示不同颜色字体,让局部字体拥有点击事件
- TextView中部分字体高亮显示
- TextView中部分字体高亮显示
- TextView字体高亮(歌词效果)
- Android textview实现局部点击
- TextView局部点击事件无效
- TextView文字局部链接点击
- TextView 部分文字高亮、点击、添加超链接、替换字体、富文本、图片替换文字等实现
- Button,TextView点击字体变色
- TextView 点击字体颜色改变
- TextView 使用自定义字体并高亮显示
- Android 自定义textview 部分文字字体颜色高亮
- Android TextView设置高亮,颜色,点击跳转链接
- textview不同颜色字体点击事件图片2
- Android TextView中设定个别文字字体显示格式或者高亮显示
- 一组TextView被点击一项字体变色,其它未点击的TextView为黑色
- oracle如何获取时间
- CSS网页绝对定位和相对定位
- 【软考学习】设计模式——建造者模式
- Spring Boot 整合mybatis 如何使用多数据源
- 图的生成树和最小生成树
- TextView 高亮字体局部点击
- 第三章 继承
- LUOGU P3955题解(NOIP 2017第二题)
- 《Linux基础》实验六- Telnet服务器安装、配置与测试
- 如何把ER模型转换为关系模型
- LightsService分析 --- JNI分析
- python编程中的if __name__ == 'main': 的作用和原理
- SQL语句实现多张表的连接查询
- windows下使用hexo和github配置个人博客