1
タッチリスナーで画像を回転するコードを実装しています。ユーザーが画像をタッチして回転している間、回転していると同時に「ズームアウト」しています。ズームアウトせずに画像の回転が必要です。これは私が実装したコードです。タッチリスナーで画像を回転するには?
public class SeekBarCustomized extends Activity implements OnTouchListener{
//VerticalSeekBar mVerSeekbar;
ImageView mIvRotateImage;
private float y=0;
int r =0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mIvRotateImage = (ImageView) findViewById(R.id.ivImgView);
mIvRotateImage.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
//double r=Math.atan2(event.getX()-mIvRotateImage.getWidth()/2, mIvRotateImage.getHeight()/2-event.getY());
//double r=Math.atan2(event.getX(), event.getY());
int rotation=(int)Math.toDegrees(r);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
r = r + 2;
rotate(v, event);
break;
case MotionEvent.ACTION_UP:
break;
}//switch
return true;
}
private void rotate(View v, MotionEvent event) {
LayoutParams mParams = (LayoutParams) mIvRotateImage.getLayoutParams();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.increcircle);
int w = bitmap.getWidth();
int h = bitmap.getHeight();
Matrix matrix = new Matrix();
matrix.preRotate(r);
Bitmap rotaBitmap = Bitmap.createBitmap(bitmap, 0, 0, 200, 200, matrix,
true);
BitmapDrawable bdr = new BitmapDrawable(rotaBitmap);
int x = mParams.leftMargin;
int y = mParams.topMargin;
mParams.leftMargin = 50;
mParams.topMargin = 50;
mIvRotateImage.setImageDrawable(bdr);
mIvRotateImage.setLayoutParams(mParams);
}
}
私のXMLファイルには、このコードは、画像を回転しても、ズームアウトを取得している
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/ivImgView"
android:layout_width="200px" android:layout_height="200px"
android:layout_marginTop="50px" android:layout_marginLeft="50px"
android:src="@drawable/increcircle"/>
</RelativeLayout>
です。私は画像の回転だけを望み、ズームアウトはしない – Rajesh