我的Android项目中有一个ImageView。我需要在某些情况下旋转此imageview。所有旋转都在旋转动画的帮助下执行。但是当ImageView旋转到90度或270度以下时,其内部的位图将在顶部和底部进行裁剪。我不知道,为什么会这样。任何人都可以给我一个如何避免这种行为的建议吗?
final ImageView photoView = (ImageView) main_activity.findViewById(R.id.photo_view);
RotateAnimation mRotateAnim = new RotateAnimation(oldRotation, newRotation, photoView.getPivotX(), photoView.getPivotY());
mRotateAnim.setDuration(500);
mRotateAnim.setFillAfter(true);
photoView.startAnimation(mRotateAnim);
这是我在xml文件中的ImageView声明:
<ImageView
android:id="@+id/photo_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:layout_above="@+id/bottom_container"
android:adjustViewBounds="true"/>
答案 0 :(得分:1)
尝试更改
RotateAnimation mRotateAnim = new RotateAnimation(oldRotation, newRotation, photoView.getPivotX(), photoView.getPivotY());
使用:
RotateAnimation mRotateAnim = new RotateAnimation(oldRotation, newRotation, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);