Как оживить пользовательский вид? - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь сделать анимацию для моего собственного представления.Но когда я запускаю свое приложение, мой пользовательский вид не приходит с анимацией.

Я попробовал код из какой-то статьи.И это работает, но когда я сам это замерзаю.Я также попробовал некоторый код с этого сайта, а также не пришел с анимацией.

вот мой код

class MyView extends LinearLayout
       {

private float powerPos;
private RectF rect;
private Paint paint;


GameView(Context ctx){
    super(ctx);
    init();
    setBackgroundColor(Color.BLUE);
}

public void drawPower(float i){
    powerPos = i;
}

private void init(){
    rect = new RectF(100, 100, 400, 400);
    paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setColor(Color.RED);
    paint.setStyle(Paint.Style.STROKE);
    paint.setTextSize(70);
    paint.setTypeface(Typeface.MONOSPACE);

}





@Override
protected void onDraw(Canvas canvas)
{

  canvas.drawText("i am tge power",powerPos,rect.centerY(),paint);


    super.onDraw(canvas);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

}

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    super.onLayout(changed, left, top, right, bottom);
}

@Override
protected void onAttachedToWindow() {
    super.onAttachedToWindow();




}

@Override
protected void onDetachedFromWindow() {
    super.onDetachedFromWindow();
}


private void animateArch() {
    final android.animation.ValueAnimator frontEndExtend = android.animation.ValueAnimator.ofFloat(0, 500);
    frontEndExtend.setDuration(5000);
    frontEndExtend.setInterpolator(new android.view.animation.LinearInterpolator());
    frontEndExtend.addUpdateListener(new android.animation.ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(android.animation.ValueAnimator animation) {


            }
        });
    frontEndExtend.start();
    frontEndExtend.addListener(new android.animation.ValueAnimator.AnimatorListener() {
            @Override
            public void onAnimationStart(android.animation.Animator animator) {
                float value = ((Float) (frontEndExtend.getAnimatedValue())).floatValue();
                powerPos = value;
            }

            @Override
            public void onAnimationEnd(android.animation.Animator  animator) {
                animateArch();
            }

            @Override
            public void onAnimationCancel(android.animation.Animator  animator) {

            }

            @Override
            public void onAnimationRepeat(android.animation.Animator  animator) {

            }
        });
}}

я что-то оставил?

...