Hai thanks for the replys........

I changed my code like

        matrix.postScale(scaleWidth, scaleHeight);
        matrix.postRotate(angle, X+centrex , Y+centrey );
        canvas.setMatrix(matrix);

        Bitmap resizedBitmap = Bitmap.createBitmap(arrow, 0, 0, 
arrow.getWidth(), arrow.getHeight(), matrix, true);
        canvas.save(Canvas.MATRIX_SAVE_FLAG);
        canvas.rotate(angle, *X + *getWidth() >> 1, *Y +* getHeight() >> 1);
        super.dispatchDraw(canvas);
        canvas.drawBitmap(resizedBitmap, X, Y, null); //Draw the arrow on 
the rotated canvas.
        canvas.restore();

But still it's not rotating about the centre.......



On Tuesday, 11 September 2012 01:49:30 UTC+5:30, bob wrote:
>
> canvas.save(Canvas.MATRIX_SAVE_FLAG);
> canvas.rotate(angle, *X + *getWidth() >> 1, *Y +* getHeight() >> 1);
> super.dispatchDraw(canvas);
> canvas.restore();
>
> On Monday, September 10, 2012 2:22:15 PM UTC-5, lbendlin wrote:
>>
>>     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

Reply via email to