有种场景,我们想将一个图片切割成多个图片。比如我们在开发一个拼图的游戏,就首先要对图片进行切割。

以下是封装好的两个类,可以实现图片的切割。仅供参考和学习。

一个是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方法,不再做具体描述。

更多相关文章

  1. Android延长Toast的时间以及自定义Toast
  2. Android(安卓)ViewPager嵌套ViewPager滑动冲突的解决方法
  3. 一些摘抄
  4. android中JSON数据的读写方法
  5. AsyncTask的使用详解
  6. Retrofit2.0+RxJava+MVP+Bmob的使用
  7. android基本功
  8. Android自适应屏幕大小和layout布局(横屏|竖屏)
  9. Android(安卓)RecyclerView使用详解

随机推荐

  1. 吴恩达 deeplearning.ai 经典总结:28 张精
  2. 是时候抛弃print了,开始体验下logging的强
  3. 这一年我都做了些什么?
  4. WIN10从休眠中唤醒,总是要点“登录”才能
  5. Python排序傻傻分不清?一文看透sorted与so
  6. 用Python实现跳一跳自动跳跃。
  7. 2018年原创精选文章汇总
  8. OpenCV:目标跟踪。
  9. 自然语言处理中句子相似度计算的几种方法
  10. 4、输入、输出重定向、管道符、Vim编辑器