1. 程式人生 > >Android中將一個圖片切割成多個圖片

Android中將一個圖片切割成多個圖片

import 拼圖 stat graph static bit 保存 return @param

有種場景,我們想將一個圖片切割成多個圖片。比如我們在開發一個拼圖的遊戲,就首先要對圖片進行切割。

以下是封裝好的兩個類,可以實現圖片的切割。僅供參考和學習。

一個是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中將一個圖片切割成多個圖片