1

I'm starting with Android Wear and I want to make a circle animation, making grow. I know how to do it, I think, but it's doing it very very slow, hope you can help me

I have this class variable

 Paint mAnimation;

intialized on the method OnCreate

mAnimation = new Paint(Paint.ANTI_ALIAS_FLAG);
mAnimation.setStyle(Paint.Style.FILL);
mAnimation.setColor(Color.GREEN);

and on the OnDraw method I have

    @Override
    public void onDraw(Canvas canvas, Rect bounds) {

        int width = bounds.width();
        int height = bounds.height();

        float centerX = width / 2f;
        float centerY = height / 2f;


        // Draw the background.
        canvas.drawRect(0, 0, bounds.width(), bounds.height(),               mBackgroundPaint);

        canvas.drawCircle(0, centerY, radiusPlus, mAnimation);
        radiusPlus += 20;

    }

The animation is "correct", but is very slow, like if was paused.

Thanks!!

EDIT

I found a example and now I finally found why. I didn't invalidate the view at the end of the OnDraw. Now It's working fine. Thanks.

@Override
    public void onDraw(Canvas canvas, Rect bounds) {

        int width = bounds.width();
        int height = bounds.height();

        float centerX = width / 2f;
        float centerY = height / 2f;


        // Draw the background.
        canvas.drawRect(0, 0, bounds.width(), bounds.height(), mBackgroundPaint);


        canvas.drawCircle(0, centerY, radiusPlus, mAnimation);
        radiusPlus += 5;

        if (isVisible() && !isInAmbientMode()) {
            invalidate();
        }

    }
Chepeman
  • 91
  • 1
  • 1
  • 7

0 Answers0