【发布时间】:2017-01-20 20:23:48
【问题描述】:
我有一个具有android:scaleType="fitCenter" 的 ImageView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="at.lukle.picturerotation.MainActivity">
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:src="@drawable/android"/>
<Button
android:id="@+id/btn_rotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="rotate"/>
</RelativeLayout>
看起来像这样:
当按钮被点击时,我会应用一个旋转动画:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnRotate = (Button) findViewById(R.id.btn_rotate);
final ImageView iv = (ImageView) findViewById(R.id.iv);
btnRotate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
iv.animate().rotationBy(90f).start();
}
});
}
}
图像在侧面被剪切。我希望 scaleType 也适用于旋转的图像,以便 ImageView 不仅被旋转,而且还被缩放以适应宽度。我想我也需要一个缩放动画,但我不知道该怎么做。
我也尝试只使用iv.setRotation(90),但我在这里遇到了同样的问题......
【问题讨论】:
-
第一次在imageview上设置图片时,根据设备宽度进行缩放,这样旋转图片时图片不会被裁剪。
-
我需要图像在每次旋转/方向时填充整个宽度。
-
好的。然后在旋转图像之前对其进行缩放。
-
我认为你需要使用 graphics.Matrix;。例子。第一次设置 ImageView 后,从该 ImageView 获取矩阵,旋转它然后再次设置。
-
@lukle 你有没有找到任何解决方案我在旋转
ImageView时遇到同样的问题,它的图像正在裁剪我正在使用fitXY
标签: android animation rotation