有种场景,我们想将一个图片切割成多个图片。比如我们在开发一个拼图的游戏,就首先要对图片进行切割。
以下是封装好的两个类,可以实现图片的切割。仅供参考和学习。
class="keyword">一个是ImagePiece类,此类保存了一个Bitmap对象和一个标识图片的顺序索引的int变量。
Java代码 
 
- 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片。
Java代码 
 
- 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方法,不再做具体描述。