Android: повернуть изображение в ImageView на 90 градусов, но без задержки

Я разрабатываю игру, где пользователю нужно нажать на изображение в ImageView, чтобы повернуть его. На каждом изображении крана вращается на 90 градусов по часовой стрелке. Но изображение занимает время, чтобы повернуть от старого к новому. Это затрудняет игровой процесс. Я использовал следующее:

protected void onCreate(Bundle savedInstanceState) { ... ... imgview = (ImageView)findViewById(R.id.imageView1); imgview.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Matrix matrix = new Matrix(); matrix.postRotate(90); Bitmap myImg = getBitmapFromDrawable(imgview.getDrawable()); Bitmap rotated = Bitmap.createBitmap(myImg,0,0,myImg.getWidth(),myImg.getHeight(),matrix,true); imgview.setImageBitmap(rotated); } }); 

Я хочу знать, есть ли другой способ повернуть изображение без каких-либо задержек во вращении.

Я также попытался сделать это один раз и не нашел другого решения, кроме использования анимации. Вот как бы я это сделал.

 private void rotate(float degree) { final RotateAnimation rotateAnim = new RotateAnimation(0.0f, degree, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f); rotateAnim.setDuration(0); rotateAnim.setFillAfter(true); imgview.startAnimation(rotateAnim); } 

Вам не нужно вращать объект, поворот изображения должен быть достаточным. Если вы нацеливаете API> = 11, вы всегда можете это сделать.

 mImageView.setRotation(angle); 

Приветствия.

Короткий метод

View.animate().rotation(90).setDuration(0);

Вы пытались использовать пользовательское представление, расширяющее изображение и поворачивая изображение в фоновом потоке?