首页 > 系统 > Android > 正文

Android中将一个图片切割成多个图片的实现方法

2019-10-24 21:02:43
字体:
来源:转载
供稿:网友
有种场景,我们想将一个图片切割成多个图片。比如我们在开发一个拼图的游戏,就首先要对图片进行切割
 

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

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

复制代码代码如下:

package arui319.blog.csdn.net;  

import android.graphics.Bitmap;  

public class ImagePiece {  

    public int index = 0;  

    public Bitmap bitmap = null;  
}  

一个是ImageSplitter类,有一个静态方法split,传入的参数是要切割的Bitmap对象,和横向和竖向的切割片数。比如传入的是3、3,则横竖向都切割成3片,最终会将整个图片切割成3X3=9片。
复制代码代码如下:

package arui319.blog.csdn.net;  

import java.util.ArrayList;  
import java.util.List;  

import android.graphics.Bitmap;  

public class ImageSplitter {  

    public static List<ImagePiece> split(Bitmap bitmap, int xPiece, int yPiece) {  

        List<ImagePiece> pieces = new ArrayList<ImagePiece>(xPiece * yPiece);  
        int width = bitmap.getWidth();  
        int height = bitmap.getHeight();  
        int pieceWidth = width / 3;  
        int pieceHeight = height / 3;  
        for (int i = 0; i < yPiece; i++) {  
            for (int j = 0; j < xPiece; j++) {  
                ImagePiece piece = new ImagePiece();  
                piece.index = j + i * xPiece;  
                int xValue = j * pieceWidth;  
                int yValue = i * pieceHeight;  
                piece.bitmap = Bitmap.createBitmap(bitmap, xValue, yValue,  
                        pieceWidth, pieceHeight);  
                pieces.add(piece);  
            }  
        }  

        return pieces;  
    }  

}  

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表