Android 裁剪实现
时间: 2023-11-11 12:11:30 浏览: 34
Android 裁剪可以通过使用 `Bitmap.createBitmap()` 和 `Canvas.drawBitmap()` 方法来实现。
以下是一个简单的示例代码,该代码可以将一个位图文件裁剪成一个圆形,并显示在 ImageView 中:
```java
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test_image); //获取位图文件
int width = bitmap.getWidth();
int height = bitmap.getHeight();
Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); //创建一个新的位图文件
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, width, height);
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle(width / 2, height / 2, width / 2, paint); //绘制圆形
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint); //将原始位图文件绘制到圆形中
ImageView imageView = findViewById(R.id.image_view);
imageView.setImageBitmap(output); //将裁剪后的位图文件显示在 ImageView 中
```
在这个示例代码中,我们首先获取了原始的位图文件。然后,我们创建了一个新的位图文件,用于存储裁剪后的结果。接下来,我们使用 `Canvas` 对象在新位图文件上绘制一个圆形。然后,我们使用 `PorterDuffXfermode` 将原始位图文件绘制到圆形中。最后,我们将裁剪后的位图文件显示在 ImageView 中。