自定义:
package com.toolbar;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
/**
-
缩放展开的动画简单Textview
-
Created by igeek on 2016/9/1.
-
@author igeek2014@hotmail.com
*/
public class ExpandTextView extends View implements View.OnClickListener {
//行文本记录集
private List lineTexts = new ArrayList();
//最大显示文本行数
private int My_maxLines;
//目标文本行
private int targetLine;
//收缩收起时候的提示图标
private Drawable expandDrawable;
//展开时候的提示图标
private Drawable shrinkDrawable;
//提示图标的宽度
private int drawableWidth;
//提示图标的高度
private int drawableHeight;
//最大显示文本行对应的本视图高度
private int maxLinesHeight;
//展开时候的视图高度
private int expandHeight;
//当前视图的高度
private int viewHeight;
//收缩行结尾提示语文本宽度
private float ellipsizWidth;
//收缩行结尾提示语文本绘制水平起点
private float ellipsizStartX;
//文本字体大小
private int textSize;
//文本颜色
private int textColor;
//当前文本
private String text;
private String ellipsizText = “…”;
//收缩行文本
private String shrinkLineText;
//动画显示时间
private int animDuration;
//是否能够显示 ellipsizText 【需要收缩行当前文本的宽度】
private boolean showEllipsizText = false;
private boolean showTipDrawalbe = false;
private boolean needMeasure = true;
private StaticLayout layout;
private TextPaint textPaint;
public ExpandTextView(Context context) {
this(context, null);
}
public ExpandTextView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ExpandTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, att