需求让你醉,代码让你更醉-致程序猴(TextView-SpannableString)

本文介绍如何在Android TextView中使用SpannableString实现文字属性的精细化控制,包括设置超链接、字体颜色、大小及创建可点击事件。此外,还提供了一个自定义的NoLineClickSpan类以移除超链接的下划线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性--http://blog.youkuaiyun.com/jdsjlzx/article/details/19122103

String str = "余额¥" + mLeftMoney + ",提现";

// SpannableString ss = new SpannableString(str);
// // 用颜色标记文本Color.parseColor("#888888")
// ss.setSpan(
// new ForegroundColorSpan(getResources().getColor(
// R.color.black_color_888888)), 0, str.length() - 4,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// // 设置字体大小
// AbsoluteSizeSpan ass = new AbsoluteSizeSpan(sp2px(14));
// ss.setSpan(ass, 0, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// // 设置全部提现可点击事件
// ss.setSpan(new NoLineClickSpan(str) {
//
// @Override
// public void onClick(View widget) {
// if (mLeftMoney.isEmpty()) {
// mWantMoneyEt.setText("0.00");
// } else {
// mWantMoneyEt.setText(mLeftMoney);
// }
// mAllWithdrawTv.setHighlightColor(Color.TRANSPARENT);
// }
// }, str.length() - 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ss.setSpan(
// new ForegroundColorSpan(getResources().getColor(
// R.color.wallet_tax_6c96c6)), str.length() - 4,

// str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);


// 重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接)
// 无下划线超链接,使用textColorLink、textColorHighlight分别修改超链接前景色和按下时的颜色
// private abstract class NoLineClickSpan extends ClickableSpan {
// String text;
//
// public NoLineClickSpan(String text) {
// super();
// this.text = text;
// }
//
// @Override
// public void updateDrawState(TextPaint ds) {
// ds.setColor(ds.linkColor);
// ds.setUnderlineText(false); // 去掉下划线
// }
// }

/**
* 将sp值转换为px值,保证文字大小不变

* @param spValue
* @param fontScale
*            (DisplayMetrics类中属性scaledDensity)
* @return
*/
// public static int sp2px(float spValue) {
// float density = mContext.getResources().getDisplayMetrics().density;
// return (int) (spValue * density + 0.5f);
// }


android:layout_marginStart="16dp"   android:paddingLeft="15dp"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值