Cómo rotar la imagen en imageview en el botón haga clic en cada vez?

Esto es código de Java. Estoy consiguiendo la imagen de la galería de la imagen. Tengo un botón y un ImageView. Está girando solamente una vez. Cuando hago de nuevo clic el botón no está girando la imagen.

public class EditActivity extends ActionBarActivity { private Button rotate; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit); rotate=(Button)findViewById(R.id.btn_rotate1); imageView = (ImageView) findViewById(R.id.selectedImage); String path = getIntent().getExtras().getString("path"); final Bitmap bitmap = BitmapFactory.decodeFile(path); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 510, 500, false)); rotate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageView.setRotation(90); } }); } 

Cambie su método onClick() a

 @Override public void onClick(View v) { imageView.setRotation(imageView.getRotation() + 90); } 

Observe, lo que dicen los docs

Establece los grados en los que se gira la vista alrededor del punto de pivote. Los valores crecientes dan como resultado una rotación en sentido horario.


Me gustaría actualizar mi respuesta para mostrar cómo usar RotateAnimation para lograr el mismo efecto en caso de que también esté orientado a dispositivos Android con Gingerbread (v10) o inferior.

 private int mCurrRotation = 0; // takes the place of getRotation() 

Introduzca un campo de instancia para rastrear los grados de rotación como se indica arriba y úselo como:

 mCurrRotation %= 360; float fromRotation = mCurrRotation; float toRotation = mCurrRotation += 90; final RotateAnimation rotateAnim = new RotateAnimation( fromRotation, toRotation, imageview.getWidth()/2, imageView.getHeight()/2); rotateAnim.setDuration(1000); // Use 0 ms to rotate instantly rotateAnim.setFillAfter(true); // Must be true or the animation will reset imageView.startAnimation(rotateAnim); 

Por lo general uno puede configurar tales animaciones de vista a través de XML también. Pero, puesto que usted tiene que especificar valores de grado absoluto allí, las rotaciones sucesivas se repetirán en lugar de basarse en la anterior para completar un círculo completo. Por lo tanto, elegí mostrar cómo hacerlo en código anterior.

  • Estirar imagen en ImageView
  • Fuera de la memoria de carga imageViews
  • ¿Cómo leer el margen ImageView mediante programación?
  • Seleccione una parte de la imagen en ImageView y obtenga los puntos finales del rectángulo seleccionado
  • ¿Por qué no establece CircleImageView de android support v4 library public?
  • La aplicación se bloquea al agregar un ImageView
  • Obtener imagen asociada (Drawable) en ImageView android
  • Cómo centrar un Imageview en la pantalla con un FrameLayout? (Con código java)
  • Hacer una imagen a pantalla completa en la aplicación de tutorial para Android
  • Cómo obtener las dimensiones de un Drawable en un ImageView?
  • Ocultar y eliminar la imagen en la vista de imagen de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.