Friday, September 14, 2012

[android-developers] Re: Rotate image around it's centre problem with matrix rotation

Yes, I ran it.  It works fine if you make the change I told you to make:


change this:


Y = initialY;


to this:


 Y = (int) (screenH /2) - (arrowH / 2) ;


On Thursday, September 13, 2012 11:57:24 PM UTC-5, Haris wrote:
Hai bob, have you run my code..?

On Monday, 10 September 2012 18:48:32 UTC+5:30, 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment