canvas.save(Canvas.MATRIX_SAVE_FLAG);
canvas.rotate(angle, getWidth() >> 1, getHeight() >> 1);
super.dispatchDraw(canvas);
canvas.restore();
On Monday, September 10, 2012 9:18:32 AM UTC-4, Haris wrote:
>
> Hai all
>
> I am trying an application like rotating image with motion sensor....My
> problem is that the image does not rotate about centre properly....And my
> angle range is 0 to 90 and 0 to -90..
> And below is my code.....
>
> public void onDraw(Canvas canvas) {
> super.onDraw(canvas);
> Bitmap arrow =
> BitmapFactory.decodeResource(getResources(),R.drawable.arrow);
> int arrowW = arrow.getWidth();
> int arrowH = arrow.getHeight();
> float scaleWidth = 1;
> float scaleHeight = 1;
> int centrex = arrowW/2;
> int centrey = arrowH/2;
> int X=108;
> int Y=100;
> int angle=0;
>
> Matrix matrix = new Matrix();
> matrix.postScale(scaleWidth, scaleHeight);
>
> matrix.postRotate(angle, X+centrex , Y+centrey );
> Bitmap resizedBitmap = Bitmap.createBitmap(arrow, 0, 0,
> arrow.getWidth(), arrow.getHeight(), matrix, true);
> canvas.save();
> canvas.drawBitmap(resizedBitmap, X, Y, null);
> invalidate();
> }
>
> I am getting the angle values from onCreate method.....Using orientation
> sensor(roll values)..
> But When I rotate the screen my image is rotating but not exactly around
> the image centre.....
>
> Thanks......
>
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en