У меня есть solution к этому. На самом деле это решение проблемы, которая возникает после поворота (Прямоугольная изображение не подходит ImagView) , но она покрывает вашу проблему тоже .. Хотя это решение имеет анимацию лучше или хуже
int h,w;
Boolean safe=true;
Получение параметры ImageView не представляется возможным при инициализации деятельности для этого, пожалуйста, обратитесь к этому solution ИЛИ установленных размеров в OnClick кнопки, как это
rotateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(imageView.getRotation()/90%2==0){
h=imageView.getHeight();
w=imageView.getWidth();
}
.
.//Insert the code Snippet below here
}
И код, который будет выполняться, когда мы хотим, чтобы повернуть ImageView
if(safe)
imageView.animate().rotationBy(90).scaleX(imageView.getRotation()/90%2==0?(w*1.0f/h):1).scaleY(imageView.getRotation()/90%2==0?(w*1.0f/h):1).setDuration(2000).setInterpolator(new LinearInterpolator()).setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
safe=false;
}
@Override
public void onAnimationEnd(Animator animation) {
safe=true;
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
}).start();
}
});
Это решение достаточно для задачи above.Although она сожмет ImageView, даже если он не нужен (если высота меньше ширины) . Если это вас беспокоит, вы можете добавить еще один тернарный оператор внутри scaleX/scaleY.
PS для 2014 года, похоже, вы можете просто установить «вращение» в XML в Android Studio. (Вы можете просто щелкнуть по кнопке «экспертные свойства» справа, если вас не беспокоит использование макета «Текст»!) – Fattie