// Path: htextview-base/src/main/java/com/hanks/htextview/base/AnimationListener.java
// public interface AnimationListener {
//     void onAnimationEnd(HTextView hTextView);
// }
// 
// Path: htextview-base/src/main/java/com/hanks/htextview/base/HTextView.java
// public abstract class HTextView extends TextView {
//     public HTextView(Context context) {
//         this(context, null);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs) {
//         this(context, attrs, 0);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//     }
// 
//     public abstract void setAnimationListener(AnimationListener listener);
// 
//     public abstract void setProgress(float progress);
// 
//     public abstract void animateText(CharSequence text);
// }


import android.content.Context;
import android.graphics.Canvas;
import android.text.TextUtils;
import android.util.AttributeSet;
import com.hanks.htextview.base.AnimationListener;
import com.hanks.htextview.base.HTextView;
package com.hanks.htextview.scale;



/**
 * ScaleTextView
 * Created by hanks on 2017/3/15.
 */

public class ScaleTextView extends HTextView {

    private ScaleText scaleText;

    public ScaleTextView(Context context) {
        this(context, null);
    }

    public ScaleTextView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public ScaleTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        scaleText = new ScaleText();
        scaleText.init(this, attrs, defStyleAttr);
        setMaxLines(1);
        setEllipsize(TextUtils.TruncateAt.END);
    }

    @Override
// Path: htextview-base/src/main/java/com/hanks/htextview/base/AnimationListener.java
// public interface AnimationListener {
//     void onAnimationEnd(HTextView hTextView);
// }
// 
// Path: htextview-base/src/main/java/com/hanks/htextview/base/HTextView.java
// public abstract class HTextView extends TextView {
//     public HTextView(Context context) {
//         this(context, null);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs) {
//         this(context, attrs, 0);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//     }
// 
//     public abstract void setAnimationListener(AnimationListener listener);
// 
//     public abstract void setProgress(float progress);
// 
//     public abstract void animateText(CharSequence text);
// }


// Path: htextview-scale/src/main/java/com/hanks/htextview/scale/ScaleTextView.java
import android.content.Context;
import android.graphics.Canvas;
import android.text.TextUtils;
import android.util.AttributeSet;
import com.hanks.htextview.base.AnimationListener;
import com.hanks.htextview.base.HTextView;

package com.hanks.htextview.scale;



/**
 * ScaleTextView
 * Created by hanks on 2017/3/15.
 */

public class ScaleTextView extends HTextView {

    private ScaleText scaleText;

    public ScaleTextView(Context context) {
        this(context, null);
    }

    public ScaleTextView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public ScaleTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        scaleText = new ScaleText();
        scaleText.init(this, attrs, defStyleAttr);
        setMaxLines(1);
        setEllipsize(TextUtils.TruncateAt.END);
    }

    @Override
    public void setAnimationListener(AnimationListener listener) {