package com.liuguilin.lovewallpaper.utils; /* * 项目名: LoveWallpaper * 包名: com.liuguilin.lovewallpaper.utils * 文件名: ImageSplitterUtil * 创建者: LGL * 创建时间: 2017/1/21 11:53 * 描述: 切图工具 */ import android.graphics.Bitmap; import com.liuguilin.lovewallpaper.model.ImagePiece; import java.util.ArrayList; import java.util.List; public class ImageSplitterUtil { /** * 静态方法 * 传递bitmap切成piece*piece块,返回List<ImagePiece> * * @param bitmap * @param piece * @return */ public static List<ImagePiece> splitImage(Bitmap bitmap, int piece) { //作为返回值传递 List<ImagePiece> imagePieces = new ArrayList<>(); //获取图片的宽高 int width = bitmap.getWidth(); int height = bitmap.getHeight(); //根据宽高取最小值达到正方形 int pieceWidth = Math.min(width, height) / piece; //进行切割 for (int i = 0; i < piece; i++) { for (int j = 0; j < piece; j++) { ImagePiece imagePiece = new ImagePiece(); imagePiece.setIndex(j + i * piece); int x = j * pieceWidth; int y = i * pieceWidth; //第一次循环为0,0, imagePiece.setBitmap(Bitmap.createBitmap(bitmap, x, y, pieceWidth, pieceWidth)); /** * 保存到list中进行返回 */ imagePieces.add(imagePiece); } } return imagePieces; } }