简介

1. 基础知识

在开始之前,我们需要了解一些基础知识:

  • Canvas:一个可以在屏幕上绘制各种图形和图像的绘图表面。
  • Matrix:一个用于二维图形变换的矩阵,包括平移、缩放、旋转等操作。

2. 实现步骤

2.1 准备工作

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
Canvas canvas = new Canvas(bitmap);

2.2 设置旋转中心

int centerX = bitmap.getWidth() / 2;
int centerY = bitmap.getHeight() / 2;

2.3 旋转图片

canvas.rotate(45, centerX, centerY);

在上面的代码中,45表示旋转角度,centerXcenterY是旋转中心。

2.4 绘制图片

canvas.drawBitmap(bitmap, 0, 0, null);

2.5 完整示例

public void rotateImage(View view) {
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
    Canvas canvas = new Canvas(bitmap);
    int centerX = bitmap.getWidth() / 2;
    int centerY = bitmap.getHeight() / 2;
    canvas.rotate(45, centerX, centerY);
    canvas.drawBitmap(bitmap, 0, 0, null);
}

3. 注意事项

  • 在旋转图片之前,请确保已经设置了旋转中心。
  • 旋转角度可以是正数或负数,正数表示顺时针旋转,负数表示逆时针旋转。
  • 旋转后的图片可能会超出Canvas的边界,您可以根据需要调整绘制位置。

4. 总结