Android中將一個圖片切割成多個圖片
阿新 • • 發佈:2019-01-23
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 publicBitmap 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中將一個圖片切割成多個圖片