如图所示,在一个textview中存在文本并设置可点击,添加下划线,虚线
//可以为多部分设置超链接
spanableInfo.setSpan(new Clickable(listener), start, end, Spanned.SPAN_MARK_MARK);
spanableInfo.setSpan(new Clickable(listener), 14, 18, Spanned.SPAN_MARK_MARK);
我这样写添加了超链接,但是是实线,虚线如何是实现呢
4 个解决方案
#1
添加下划线
部分文字可以点击
textview.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); //中间横线(删除线)
textview.getPaint().setAntiAlias(true);// 抗锯齿
部分文字可以点击
txt.setText("这是一条测试文本");
SpannableString clickString = new SpannableString("可点击文本");
clickString.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
startActivity(new Intent(MainActivity.this, FirstActivity.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.RED);//设置颜色
}
}, 0, clickString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.append(clickString);
txt.append(new SpannableString("这也是一条测试文本"));
SpannableString clickString2 = new SpannableString("我是可点击的");
clickString2.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.BLUE); //设置颜色
}
}, 0, clickString2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.append(clickString2);
txt.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
#2
大神那个实线能变成虚线吗?...貌似系统没有提供方法额..
#3
要不利用drawableBottom属性,添加一下图片,叫你的UI帮忙做一个
https://blog.csdn.net/fuqinyijiu/article/details/53608230
https://blog.csdn.net/fuqinyijiu/article/details/53608230
#4
大佬,我的意识是..比如后台给了一个字符串数据,然后我把这个数据放到一个textveiw里面去,里面有特殊字符需要我去匹配,然后匹配到了在设置成可以点击和加虚线的,然后大神你的办法是不断向后添加数据...
#1
添加下划线
部分文字可以点击
textview.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); //中间横线(删除线)
textview.getPaint().setAntiAlias(true);// 抗锯齿
部分文字可以点击
txt.setText("这是一条测试文本");
SpannableString clickString = new SpannableString("可点击文本");
clickString.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
startActivity(new Intent(MainActivity.this, FirstActivity.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.RED);//设置颜色
}
}, 0, clickString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.append(clickString);
txt.append(new SpannableString("这也是一条测试文本"));
SpannableString clickString2 = new SpannableString("我是可点击的");
clickString2.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.BLUE); //设置颜色
}
}, 0, clickString2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.append(clickString2);
txt.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
#2
大神那个实线能变成虚线吗?...貌似系统没有提供方法额..
#3
要不利用drawableBottom属性,添加一下图片,叫你的UI帮忙做一个
https://blog.csdn.net/fuqinyijiu/article/details/53608230
https://blog.csdn.net/fuqinyijiu/article/details/53608230
#4
大佬,我的意识是..比如后台给了一个字符串数据,然后我把这个数据放到一个textveiw里面去,里面有特殊字符需要我去匹配,然后匹配到了在设置成可以点击和加虚线的,然后大神你的办法是不断向后添加数据...