package com.basic.security.widget;
|
|
import android.animation.ValueAnimator;
|
import android.content.Context;
|
import android.graphics.Canvas;
|
import android.graphics.Color;
|
import android.graphics.Paint;
|
import android.util.AttributeSet;
|
import android.view.animation.LinearInterpolator;
|
|
import com.basic.security.R;
|
import com.basic.security.base.BaseApplication;
|
|
public class ScannerView extends BaseShapeView {
|
public float value;
|
private Paint mPaint;
|
private ValueAnimator anim;
|
|
public ScannerView(Context context) {
|
super(context);
|
init();
|
}
|
|
public ScannerView(Context context, AttributeSet attrs) {
|
super(context, attrs);
|
init();
|
}
|
|
public ScannerView(Context context, AttributeSet attrs, int defStyle) {
|
super(context, attrs, defStyle);
|
init();
|
}
|
|
private void init() {
|
setLayerType(LAYER_TYPE_SOFTWARE, null);
|
mPaint = new Paint();
|
mPaint.setColor(Color.parseColor("#74F8F5"));
|
mPaint.setStrokeWidth(BaseApplication.getApplication().activity.getResources().getDimension(R.dimen.h3));
|
startAnimation();
|
}
|
|
protected void onDraw(Canvas canvas) {
|
super.onDraw(canvas);
|
int width = this.getWidth();
|
canvas.drawLine(0, value, width, value + 1, mPaint);
|
}
|
|
public void startAnimation() {
|
anim = ValueAnimator.ofFloat(0, (int) BaseApplication.getApplication().activity.getResources().getDimension(R.dimen.h310));
|
anim.setRepeatCount(ValueAnimator.INFINITE);
|
anim.setDuration(2000);
|
anim.setInterpolator(new LinearInterpolator());
|
anim.addUpdateListener(animation -> {
|
value = (Float) animation.getAnimatedValue();
|
postInvalidate();
|
});
|
anim.start();
|
}
|
}
|