zoukankan      html  css  js  c++  java
  • Android TextView 高亮字体并添加点击事件

    运行效果

     

    package com.zutil.lib;
    
    import android.graphics.Typeface;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.text.Spannable;
    import android.text.SpannableStringBuilder;
    import android.text.Spanned;
    import android.text.TextPaint;
    import android.text.method.LinkMovementMethod;
    import android.text.style.ClickableSpan;
    import android.text.style.ForegroundColorSpan;
    import android.text.style.StyleSpan;
    import android.text.style.UnderlineSpan;
    import android.view.View;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        private TextView tv1 ;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            tv1 = (TextView) findViewById( R.id.tv1 );
    
            String url1 =  "这是测试";
            String url2 = "点击一下试试看";
            String url = url1 + url2;
            SpannableStringBuilder style = new SpannableStringBuilder(url1 + url2);
            TextViewURLSpan myURLSpan = new TextViewURLSpan();
            style.setSpan(myURLSpan, url1.length(), url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            style.setSpan(new StyleSpan(Typeface.NORMAL ), url1.length(), url.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
            style.setSpan(new UnderlineSpan(), url1.length(), url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            style.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorPrimaryDark)), url1.length(), url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
          //  style.setSpan(new BackgroundColorSpan(getResources().getColor(R.color.colorAccent)), url1.length(),url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            tv1.setText(style);
    
            //设置超链接为可点击状态
            tv1.setMovementMethod(LinkMovementMethod.getInstance());
    
    
        }
    
        class TextViewURLSpan extends ClickableSpan {
            @Override
            public void updateDrawState(TextPaint ds) {
                ds.setColor(getResources().getColor(R.color.colorAccent));
                ds.setUnderlineText(false); //去掉下划线
            }
    
            @Override
            public void onClick(View widget) {//点击事件
                Toast.makeText( MainActivity.this, "点击了", Toast.LENGTH_SHORT).show();
            }
        }
    
    }
  • 相关阅读:
    linux笔记八---------文件查找
    linux笔记七---------管道
    linux笔记六-------文件权限设置
    linux笔记五-------编辑器
    linux笔记四-------用户和组的管理
    linux笔记三-------根目录相关说明
    linux笔记二-----目录及文件命令
    linux笔记一
    thinkphp框架验证码验证一次
    MarkDown 中使用 LaTeX 数学式
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/5446873.html
Copyright © 2011-2022 走看看