Android ImageView 旋转90°后恢复

在 Android 开发中,经常会遇到需要对图片进行旋转的情况。ImageView 是 Android 中用于显示图片的控件,它提供了旋转的功能,可以让图片按照一定的角度进行旋转展示。本文将介绍如何使用 ImageView 旋转图片,并在旋转90°后恢复原来的状态。

ImageView 旋转图片

ImageView 提供了 setRotation(float rotation) 方法用于对图片进行旋转。该方法接受一个浮点数参数 rotation,表示旋转的角度,单位是度。正值表示顺时针旋转,负值表示逆时针旋转。例如,可以通过以下代码将一个 ImageView 的图片顺时针旋转90°:

ImageView imageView = findViewById(R.id.imageView);
imageView.setRotation(90);

上述代码中,findViewById(R.id.imageView) 获取了一个 ImageView 对象,并调用 setRotation(90) 方法将其图片顺时针旋转90°。

恢复图片的原始状态

如果需要在旋转后恢复图片的原始状态,可以使用 setRotation(0) 方法将旋转角度设为0。例如,可以通过以下代码将一个 ImageView 的图片旋转90°后再恢复到原始状态:

ImageView imageView = findViewById(R.id.imageView);
imageView.setRotation(90);
// 其他操作...
imageView.setRotation(0);

上述代码中,imageView.setRotation(90) 将图片顺时针旋转90°,然后可以在旋转后进行其他操作。最后,通过 imageView.setRotation(0) 将旋转角度设为0,图片将恢复到原始状态。

示例应用

为了更好地理解 ImageView 旋转和恢复的过程,我们可以创建一个简单的示例应用。该应用包含一个 ImageView 和两个按钮,一个按钮用于将图片顺时针旋转90°,另一个按钮用于恢复图片的原始状态。

首先,在布局文件 activity_main.xml 中添加 ImageView 和两个按钮:

<LinearLayout xmlns:android="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/image" />

    <Button
        android:id="@+id/rotateButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Rotate" />

    <Button
        android:id="@+id/resetButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Reset" />

</LinearLayout>

接下来,在 MainActivity.java 中处理按钮点击事件:

public class MainActivity extends AppCompatActivity {

    private ImageView imageView;
    private Button rotateButton;
    private Button resetButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = findViewById(R.id.imageView);
        rotateButton = findViewById(R.id.rotateButton);
        resetButton = findViewById(R.id.resetButton);

        rotateButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                imageView.setRotation(90);
            }
        });

        resetButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                imageView.setRotation(0);
            }
        });
    }
}

以上代码中,rotateButton 的点击事件调用 imageView.setRotation(90) 将图片顺时针旋转90°,resetButton 的点击事件调用 imageView.setRotation(0) 将旋转角度设为0,恢复图片的原始状态。

总结

本文介绍了如何使用 Android 的 ImageView 控件对图片进行旋转,并在旋转90°后恢复到原始状态。通过 setRotation(float rotation) 方法可以实现对图片的旋转操作,通过将旋转角度设为0可以恢复图片的原始状态。在实际开发中,可以根据需求灵活运用 ImageView 的旋转功能,为用户提供更好的交互体验。

参考链接:

  • [Android Developers: ImageView](
  • [Android Developers: View.setRotation(float rotation)](