I am trying to perform basic task of rotating a canvas 20 times a
second using timer but it doesn't seem to be working properly and its
lagging. for example, if I rotate rectangle 0.3 degrees per 50 ms it
should rotate 6 degree in on second, but that is not the case. It
really slow in rotation. Here is my sample code:

//Code for update task
class UpdateTimeTask extends TimerTask {
           public void run() {
                   hndView.post(new Runnable() {
                        public void run() {
                                hndView.invalidate(); //this code invalidates 
custom
view that calls onDraw to draw rotated hand
                        }
                      });
           }
}

//Code for onDraw method of custom view that needs to be update
@Override protected void onDraw(Canvas canvas) {
                super.onDraw(canvas);

                ang = ang + inc; //ang is angle to rotate and inc is float 
value of
0.3 degree to be incremented
                if (ang >= 360) ang = ang - 360;
                canvas.rotate(ang, canvas.getWidth()/2, canvas.getHeight()/2);
                canvas.drawRect((canvas.getWidth()/2 - 2), 
(canvas.getHeight()/2 -
125), (canvas.getWidth()/2 + 2), (canvas.getHeight()/2 + 10),
mTextPaint);
                canvas.restore();

        }

//code to schedule task
Timer timer = new Timer();
UpdateTimeTask tt = new UpdateTimeTask();
timer.schedule(tt, 0, 50);


Can anyone please tell me what am I doing wrong here? Should I used
different approach to perform this task? Because its hard to believe
that you cannot have simple smooth rotation of rectangle 20 times in
one second.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to