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

Posted carry莫奈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中将一个图片切割成多个图片相关的知识,希望对你有一定的参考价值。

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

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

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

 1 package com.example.imagesplitter;
 2 
 3 import android.graphics.Bitmap;
 4 
 5 /**
 6  * 图片切割实体类
 7  */
 8 public class ImagePiece {
 9     public int index = 0;
10     public Bitmap bitmap = null;
11 }

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

 1 package com.example.imagesplitter;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import android.graphics.Bitmap;
 7 
 8 /**
 9  * 图片切割工具类
10  */
11 public class ImageSplitter {
12 
13     /**
14      * 图片切割
15      * @param bitmap 导入图片
16      * @param x x轴切割
17      * @param y y轴切割
18      * @return
19      */
20     public static List<ImagePiece> split(Bitmap bitmap, int x, int y) {
21         List<ImagePiece> pieces = new ArrayList<ImagePiece>();
22         int width = bitmap.getWidth();
23         int height = bitmap.getHeight();
24         int pieceWidth = width / x;
25         int pieceHeight = height / y;
26         for (int i = 0; i < y; i++) {
27             for (int j = 0; j < x; j++) {
28                 ImagePiece image = new ImagePiece();
29                 image.index = j + i * x;
30                 int xValue = j * pieceWidth;
31                 int yValue = i * pieceHeight;
32                 image.bitmap = Bitmap.createBitmap(bitmap, xValue, yValue,
33                         pieceWidth, pieceHeight);
34                 pieces.add(image);
35             }
36         }
37         return pieces;
38     }
39 }

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

 

以上是关于Android中将一个图片切割成多个图片的主要内容,如果未能解决你的问题,请参考以下文章

unity中把一个图片切割成两个UI图片

怎么将一个整个的视频切割成几段?用啥软件?汉化的

Python切割图片成九宫格新手必学

如何在 Android 中将一张图片添加到其他图片之上

查看具有单个背景图片的寻呼机android

python:将图片切割成4份扩充数据集