服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android中将一个图片切割成多个图片的实现方法

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

2021-01-14 18:06Android开发网 Android

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

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

一个是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方法,不再做具体描述。

延伸 · 阅读

精彩推荐