Android中将一个图片切割成多个图片

时间:2023-03-09 13:06:09
Android中将一个图片切割成多个图片

有种场景,我们想将一个图片切割成多个图片。比如我们在开发一个拼图的游戏,就首先要对图片进行切割。

以下是封装好的两个类,可以实现图片的切割。仅供参考和学习。

一个是ImagePiece类,此类保存了一个Bitmap对象和一个标识图片的顺序索引的int变量。

 package com.example.imagesplitter;

 import android.graphics.Bitmap;

 /**
* 图片切割实体类
*/
public class ImagePiece {
public int index = 0;
public Bitmap bitmap = null;
}

一个是ImageSplitter类,有一个静态方法split,传入的参数是要切割的Bitmap对象,和横向和竖向的切割片数

 package com.example.imagesplitter;

 import java.util.ArrayList;
import java.util.List; import android.graphics.Bitmap; /**
* 图片切割工具类
*/
public class ImageSplitter { /**
* 图片切割
* @param bitmap 导入图片
* @param x x轴切割
* @param y y轴切割
* @return
*/
public static List<ImagePiece> split(Bitmap bitmap, int x, int y) {
List<ImagePiece> pieces = new ArrayList<ImagePiece>();
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int pieceWidth = width / x;
int pieceHeight = height / y;
for (int i = 0; i < y; i++) {
for (int j = 0; j < x; j++) {
ImagePiece image = new ImagePiece();
image.index = j + i * x;
int xValue = j * pieceWidth;
int yValue = i * pieceHeight;
image.bitmap = Bitmap.createBitmap(bitmap, xValue, yValue,
pieceWidth, pieceHeight);
pieces.add(image);
}
}
return pieces;
}
}

这里的切割,主要使用的是Bitmap对象的createBitmap方法,不再做具体描述。

链接: https://pan.baidu.com/s/1Dptj0hH_ZGqeAWkH78_-aA 提取码: 4mjm ,这是我写的Demo