[Android] Android中将一个图片切割成多个图片
16lz
2021-01-24
有种场景,我们想将一个图片切割成多个图片。比如我们在开发一个拼图的游戏,就首先要对图片进行切割。
以下是封装好的两个类,可以实现图片的切割。仅供参考和学习。
一个是ImagePiece类,此类保存了一个Bitmap对象和一个标识图片的顺序索引的int变量。
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片。
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方法,不再做具体描述。
更多相关文章
- Android延长Toast的时间以及自定义Toast
- Android(安卓)ViewPager嵌套ViewPager滑动冲突的解决方法
- 一些摘抄
- android中JSON数据的读写方法
- AsyncTask的使用详解
- Retrofit2.0+RxJava+MVP+Bmob的使用
- android基本功
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android(安卓)RecyclerView使用详解