一、概述
可折叠的textview是一个很常见的功能,相信大家都在微信朋友圈体验过这种场景:朋友发的笑话都只有半截,下面是一片白色,你要展开全文之后才能知道最后结果。
其实这也不是什么高大上的东西,按照惯例,我们先来看看效果图 :
二、按照流程我们就开始来看看代码啦
1、ExpandTextView:
package per.lijuan.expandtextviewdome;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Build;
import android.text.Layout;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.StaticLayout;
import android.text.method.LinkMovementMethod;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
/**
* 自定义控件,长文本展开收起TextView
*/
@SuppressLint("AppCompatCustomView")
public class ExpandTextView extends TextView {
private String originText;// 原始内容文本
private int initWidth = 0;// TextView可展示宽度
private int mMaxLines = 3;// TextView最大行数
private SpannableString SPAN_CLOSE = null;// 收起的文案(颜色处理)
private SpannableString SPAN_EXPAND = null;// 展开的文案(颜色处理)
private String TEXT_EXPAND = " 全部";
private String TEXT_CLOSE = " 收起";
public ExpandTextView(Context context) {
super(context);
initCloseEnd();
}
public ExpandTextView(Context context, AttributeSet attrs) {
super(context, attrs);
initCloseEnd();
}
public ExpandTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initCloseEnd();
}
/**
* 设置TextView可显示的最大行数
* @param maxLines 最大行数
*/
@Override
public