嗨我需要在我的应用程序中旋转ImageView
我正在使用以下代码
public android.view.View.OnTouchListener onTableTouched = new android.view.View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent evt) {
WrapMotionEvent event = WrapMotionEvent.wrap(evt);
ImageView view = (ImageView) v;
// Dump touch event to log
dumpEvent(event);
//
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_POINTER_DOWN:
mode = NONE;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
if(mode == NONE){
updateRotation();
}
break;
}
return true;
}
};
private void updateRotation()
{
matrix.postRotate(10);
Bitmap redrawnBitmap = Bitmap.createBitmap(itembmp, 0, 0,itembmp.getWidth(), itembmp.getHeight(), matrix, true);
itembmp=redrawnBitmap;
image.setImageBitmap(itembmp);
}
但是通过使用它,我只能在时钟方向旋转图像。
但我需要在两个方向上旋转图像。
如何做到这一点。
答案 0 :(得分:0)
我会创建两个函数,一个名为updateRotationClockwise,一个名为updateRotationCounterClockWise。
顺时针方向,它应该保持:
matrix.postRotate(10);
在逆时针方向,它应该说:
matrix.postRotate(350);
答案 1 :(得分:0)
我正在开发这个逻辑。 1.角度差异。人们还需要检查其他边界条件以获得更高的准确性。 2.而不是处理触摸动作。我在构建ScaleGestureDetector类中用于获取信息。 在onScaleBegin中假设我使用OnScaleGestureListener中的setter(在触摸时调用)获取事件。 之前的getY = /的getX; 在ScaleEnd上 后的getY = /的getX;
因此差异是tan-1(之前)-tan-1(之后) if + tive逆时针顺时针方向。 我添加条件并不是那么准确,但可以试试这个。
答案 2 :(得分:0)
您可以找到位图图像的旋转方法