android 同意协议、服务等,一行文字中掺杂关于其他颜色字体。同时实现超链接点击跳转等功能.
2017-08-11 14:22
956 查看
项目中会经常遇到关于使用同意XX协议,同意XX服务后继续下一步操作,具体的显示有可能为下图所展示
由于项目未上线一些关键协议进行屏蔽处理。
这个我在项目中用到了SpannableString类。废话不多说下面进行代码。
同时如果需要超链接没有下划线,则需要单独设置UnderlineSpan类,继承该类重写updateDrawState(TextPaint ds)方法;
即
设置ds.setUnderlineText(false);即可实现超链接没有下划线的效果.
在textView中直接设置setText();
即textView.setText(getClickableSpan());
注意,这里有个坑,需要留意。就是如果要设置超链接可以点击,需要格外设置点击
即 textView.setMovementMethod(LinkMovementMethod.getInstance());
由于项目未上线一些关键协议进行屏蔽处理。
这个我在项目中用到了SpannableString类。废话不多说下面进行代码。
/** * 获取可点击的SpannableString * * @return */ private SpannableString getClickableSpan() { SpannableString spannableString = new SpannableString(productAmountRechargeMsg.getText().toString()); spannableString.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(ProductBuyNowActivity.this, "服务协议", Toast.LENGTH_SHORT).show(); } }, 7, 19, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new NoUnderlineSpan(), 7, 19, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(ProductBuyNowActivity.this, "产品说明书", Toast.LENGTH_SHORT).show(); } }, 19, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new NoUnderlineSpan(), 19, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(ProductBuyNowActivity.this, "风险揭示书", Toast.LENGTH_SHORT).show(); } }, 30, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new NoUnderlineSpan(), 30, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableString; }
同时如果需要超链接没有下划线,则需要单独设置UnderlineSpan类,继承该类重写updateDrawState(TextPaint ds)方法;
即
/** * 无下划线的Span */ public class NoUnderlineSpan extends UnderlineSpan { @Override public void updateDrawState(TextPaint ds) { ds.setColor(getResources().getColor(R.color.color_009ae8)); ds.setUnderlineText(false); } }
设置ds.setUnderlineText(false);即可实现超链接没有下划线的效果.
在textView中直接设置setText();
即textView.setText(getClickableSpan());
注意,这里有个坑,需要留意。就是如果要设置超链接可以点击,需要格外设置点击
即 textView.setMovementMethod(LinkMovementMethod.getInstance());
相关文章推荐
- android中自定义view---实现竖直方向的文字功能,文字方向朝上,同时提供接口,判断当前touch的是哪个字符,并改变颜色
- Android点击文字编辑进行缩放、移动和改变字体、颜色的实现
- 关于android自定义字体颜色和点击改变字体颜色
- android Textview 实现展开收缩功能+部分文字点击 (SpannableString)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android的webView 实现点击超链接跳转,后退,前进 ,刷新
- Android实现加载富文本以及SpannableString、SpannableStringBuilder实现部分文字可以点击,更换颜色
- 使用YYText-文本蓝色文字点击实现超链接跳转
- android html超链接文本 点击跳转的两种实现
- android中实现文字的超链接的应用内跳转
- Android 中TextView部分文字颜色、点击跳转设置
- android textview改变部分文字的颜色和string.xml中文字的替换及部分内容设置颜色、字体、超链接、图片
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android 点击文字实现跳转
- 实现栏目页在同级栏目列表中,点击一栏目,该栏目样式变化(背景/颜色/字体...),其他栏目样式不变。
- Android 中TextView部分文字颜色、点击跳转设置
- Android实现加载富文本以及SpannableString、SpannableStringBuilder实现部分文字可以点击,更换颜色
- 在android中当点击ListView的item条目时,使item中的TextView的文字变成其他颜色作为标志
- Android系统自带分享功能的实现(可同时分享文字和图片)
- 超简单实现TextView中某段文字超链接点击打开浏览器跳转到网页