TextView的SpannableString

2024-01-01 08:48
文章标签 textview spannablestring

本文主要是介绍TextView的SpannableString,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

评论列表中的每一个item,要设置不同事件和颜色:

可将多个SpannableString添加到一个textView中,且可为单个的SpannableString设置文本、字体大小、字体颜色以及点击事件,然后再用append方法,逐个添加到textView中

//如微信评论回复
SpannableString spannableString = new SpannableString(contentText);
如果单是设置颜色:
//设置前景红色
spannableString.setSpan(new ForegroundColorSpan(redColor),startIndex,endIndex,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

设置颜色及点击事件

//设置颜色及点击事件
spannableString.setSpan(new ClickableSpan() {@Overridepublic void onClick(View view) {Toast.makeText(mContext, "linkColor", Toast.LENGTH_SHORT).show();}@Overridepublic void updateDrawState(TextPaint ds) {super.updateDrawState(ds);ds.setColor(linkColor);          //设置文件颜色ds.setUnderlineText(false);      //设置无下划线}},contentText.length() + stockWarnStr.length() ,contentText.length() + stockWarnStr.length() + stockWarnLink.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);contentTv.setText(spannableString);
contentTv.setMovementMethod(LinkMovementMethod.getInstance()); //此句至关重要,否则点击无反应
contentTv.setHighlightColor(getResources().getColor(android.R.color.transparent));方法重新设置文字背景为透明色。点击后出现的颜色

追加字符串:

TextView commentTextView = new TextView(context);
commentTextView.setTextSize(14);
commentTextView.setText(fromCommentReplyUserNameSps);
commentTextView.append(" 回复 ");
commentTextView.append(tooCommentReplyUserNameSps);
commentTextView.append(" : ");
commentTextView.append(commentReplyContentSps);
commentTextView.setMovementMethod(LinkMovementMethod.getInstance());
commentTextView.setTag(mapC.get("friendsCirclCommentId").toString());
myHolder.commentLayout.addView(commentTextView);

这篇关于TextView的SpannableString的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/558717

相关文章

TextView 的介绍和使用

TextView类的结构 textView是用来显示字符串的组件,在手机上就是显示一块文本的区域。 它继承自 View, 直接子类有:Button.CHeckedTextView,Chronometer, DigitalClock, EditText 简接子类:AutoCompleteTextView, CheckBox, CompoundButton, Ex

Android TextView设置跑马灯失效

1.关于问题 TextView失效在网上有详细的解决方案,大部分时候都能够很好的解决问题 下面给出网上的解决方案: <TextViewandroid:layout_width="100dp"android:layout_height="22dp"tools:text="水浇地放松放松开发的开始放假考试的飞机开了撒酒疯恐龙时代解封了开始的"android:ellipsize="marquee"

猫猫学iOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字

猫猫分享,必须精品 原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 二:代码: 由于系统自带的UITextField:和UITextView:不能满足我们的需求,所以我们需要自己设计一个。 UITextField: 1.文字永远是一行,不能显示多行文字 2.有placehoder属性设置占位文字 3

android 改造TextView使上下左右Drawble宽高可调

1、首先在attrs.xml中声明自定义属性 <declare-styleable name="DrawableEditView"><!-- 设置top图片的宽度 --><attr name="edit_drawableTopWidth" format="dimension" /><!-- 设置top图片的高度 --><attr name="edit_drawableTopHeight" f

textView代码设置文字居中失效 textView设置文字居中两种方法

1.TextView的高度占据整个父控件的高度,然后设置TextView的Grayvity Center就可以了。 2.如果第一个方法不行,那么,textView的高度设置为warp_content,然后设置父布局为CENTER_VERTICAL 代码: LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(Lay

Android中自定义TextView的形状

基本步骤: 在drawable文件夹下建立一个shape.xml shape.xml: <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval"><!-- 填充的颜色 --><solid an

TextView的自定义字体

这里有两种实现方法: (1)这种实现方法比较简单。但是只能设置个别的字体,结果可能不是你想要的。 winp.setText("Typeface.DEFAULT_BOLD");winp.setTypeface(Typeface.DEFAULT_BOLD);DEFAULT_BOLD是系统自带,当然系统自带的也有好几种,你可以选择自己需要的。 (2)这种实现方法稍稍复杂,但结果是不错的。

spannableString设置常见的复合文本

 http://orgcent.com/android-textview-spannablestring-span/#ClickableSpan

TextView自动识别电话,邮箱,电话

TextView自动识别电话,邮箱,电话,并给出相应操作,只需要在TextView中添加 android:autoLink="email|phone|web"即可