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();
        }
    }

}

 

时间: 2024-09-16 20:26:43

Android TextView 高亮字体并添加点击事件的相关文章

Android给TextView添加点击事件的实现方法_Android

首先设定TextView的clickable属性为true. 可以在布局文件中进行设定,比如: <TextView android:id="@+id/phone" android:clickable="true" --------->设定此属性 android:layout_marginLeft="10dp" android:layout_below="@id/address" android:layout_toR

Android给TextView添加点击事件的实现方法

首先设定TextView的clickable属性为true. 可以在布局文件中进行设定,比如: <TextView android:id="@+id/phone" android:clickable="true" --------->设定此属性 android:layout_marginLeft="10dp" android:layout_below="@id/address" android:layout_toR

Android TextView控件文字添加下划线的实现方法_Android

如下所示: TextView tv = (TextView) findViewById(R.id.text); tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); tv.setText("添加下划线"); 以上就是小编为大家带来的Android TextView控件文字添加下划线的实现方法的全部内容了,希望对大家有所帮助,多多支持~ 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上

Android TextView 设置字体大小的方法_Android

废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.example.yanlei.yl4; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Spannable; import android.text.style.AbsoluteSizeSpan; import and

android 如何给webview添加点击事件

问题描述 android 如何给webview添加点击事件 我使用了 onclicklistener没有效果,怎么给它添加点击事件呢? 解决方案 点击事件不是有不同方式吗,试试在布局文件相应组件下添加onclick属性,Java文件里添加相同名称的函数,形参(View v)这种方法试试 解决方案二: webview是浏览网页的,如果设置重载url不更换浏览器的话,是可以当成一个浏览器使用的,你点击webview肯定会把焦点转移到网页内容上,因此它默认不可点击,不过你可以看看它能不能ontouch

Android TextView 设置字体大小的方法

废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.example.yanlei.yl4; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Spannable; import android.text.style.AbsoluteSizeSpan; import and

Android TextView控件文字添加下划线的实现方法

如下所示: TextView tv = (TextView) findViewById(R.id.text); tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); tv.setText("添加下划线"); 以上就是小编为大家带来的Android TextView控件文字添加下划线的实现方法的全部内容了,希望对大家有所帮助,多多支持脚本之家~

button点击事件-Android开发listView中的Button点击事件被拦截

问题描述 Android开发listView中的Button点击事件被拦截 根据http://blog.csdn.net/boylinux/article/details/8860443 这位大神的帖子,我的代码如下,现在的问题是Listview中的Button和imageview和textview控件点击之后不会响应,而在滑动一下Listview后,之前的点击事件才会响应,导致这个问题的原因不明,但是如果不用HashMap这个MAP的话,就不会有这个问题,请问大神们这是为什么呢?代码如下: p

android gridview- Android 的GridView的图片点击事件问题

问题描述 Android 的GridView的图片点击事件问题 我现在不知道GridView的长度,怎么一一对应给它的每个图片添加点击事件啊.我现在是写了grid.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0 View arg1 int arg2long arg3)这个方法,通过判断arg2的来确定我点的哪个图片,我现在的问题是我不知道如何通过点击相应