2014-11-13 6 views
0

onTouch를 사용하여 이미지를 360도 회전하고 싶습니다. 내가 가지고있는 최대 회전을 사용한 코드는 120도입니다. 내가 사용했던 코드는 ontouch를 사용하여 360도 회전 이미지

이 onTouch 이벤트

case MotionEvent.ACTION_MOVE: 
    newRot = rotation(event); 
    float r = newRot - d; 
    matrix.postRotate(r, view.getMeasuredWidth()/ 2, view.getMeasuredHeight()/ 2); 

및 회전 방식의 코드

private float rotation(MotionEvent event) { 
    double delta_x = (event.getX(0) - event.getX(1)); 
    double delta_y = (event.getY(0) - event.getY(1)); 
    double radians = Math.atan2(delta_y, delta_x); 

    Log.v("", "=================xxxxxxxxxxxvvvxx==============" + Math.toDegrees(radians)); 
    return (float) Math.toDegrees(radians); 
} 
내가 모두 clockwisw에만 120도 회전을 얻고이 코드

하고이다 반 시계 방향. 제발 제안 해주세요, 제 코드 나 다른 작업 코드에서 무엇인가를 변경해야합니까?

+0

120 번으로 3 번 회전하면 360도 회전합니다. –

답변

0

이 방법을 사용하면 도움이 될 것입니다.

public static Bitmap rotate(Bitmap b, int degrees) { 
    if (degrees != 0 && b != null) { 
     Matrix m = new Matrix(); 

     m.setRotate(degrees, (float) b.getWidth()/2, 
       (float) b.getHeight()/2); 
     try { 
      Bitmap b2 = Bitmap.createBitmap(b, 0, 0, b.getWidth(), 
        b.getHeight(), m, true); 
      if (b != b2) { 
       b.recycle(); 
       b = b2; 
      } 
     } catch (OutOfMemoryError ex) { 
      throw ex; 
     } 
    } 
    return b; 
}