我想旋转此图像上的透明PNG之一。数字部分就是我想旋转的东西。我能做到这一点,但它不是我所试图实现Android,帮助旋转图像
http://i48.tinypic.com/25exzle.png
我要像一个真正的密码锁旋转的数字。因此,用户将触摸并将他们的手指移动一圈。我在触摸/移动事件时看着不太精确的图像旋转,但它们不够。
这是目前我的代码
public boolean onTouch(View v, MotionEvent event) {
double r=Math.atan2(event.getX()-lockNumbers.getWidth(), lockNumbers.getHeight()-event.getY());
int rotation=(int)Math.toDegrees(r);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
x=event.getX();
y=event.getY();
updateRotation(rotation);
break;
case MotionEvent.ACTION_UP:
break;
}//switch
return true;
}//onTouch
private void updateRotation(double rot){
float newRot=new Float(rot);
Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.numbers);
Matrix matrix=new Matrix();
matrix.postRotate(newRot,bitmap.getWidth(),bitmap.getHeight());
if(y>250){
Bitmap reDrawnBitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
lockNumbers.setImageBitmap(reDrawnBitmap);
}
else{
Bitmap reDrawnBitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
lockNumbers.setImageBitmap(reDrawnBitmap);
}
}
也调整大小,当你触摸它,因为矩阵参数的位图。这不是预期的效果。
用户几乎需要用手指绕圈。
我该如何检测ACTION_UP事件执行了多少次旋转? – IronBlossom 2012-08-04 12:05:36