本文实例讲述了Android开发之图片切割工具类定义与用法。分享给大家供大家参考,具体如下:

该工具类比较常见于拼图游戏中使用。这里演示了类基本的定义与使用方法。

图片切割工具类定义:

public class ImageSplitter

{

/**

* 将图片切成 , piece *piece

*

* @param bitmap

* @param piece

* @return

*/

public static List split(Bitmap bitmap, int piece)

{

List pieces = new ArrayList(piece * piece);

int width = bitmap.getWidth();

int height = bitmap.getHeight();

Log.e("TAG", "bitmap Width = " + width + " , height = " + height);

int pieceWidth = Math.min(width, height) / piece;

for (int i = 0; i < piece; i++)

{

for (int j = 0; j < piece; j++)

{

ImagePiece imagePiece = new ImagePiece();

imagePiece.index = j + i * piece;

int xValue = j * pieceWidth;

int yValue = i * pieceWidth;

imagePiece.bitmap = Bitmap.createBitmap(bitmap, xValue, yValue,

pieceWidth, pieceWidth);

pieces.add(imagePiece);

}

}

return pieces;

}

}

图片切割实体类:

public class ImagePiece

{

public int index = 0;

public Bitmap bitmap = null;

}

使用方法:

private void initBitmap()

{

if (mBitmap == null)

mBitmap = BitmapFactory.decodeResource(getResources(),

R.drawable.aa);

List mItemBitmaps = ImageSplitter.split(mBitmap, mColumn);

Collections.sort(mItemBitmaps, new Comparator()

{

@Override

public int compare(ImagePiece lhs, ImagePiece rhs)

{

return Math.random() > 0.5 ? 1 : -1;

}

});

}

PS:这里再为大家推荐一款js实现的拼图游戏供大家参考:

希望本文所述对大家Android程序设计有所帮助。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐