温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中怎么实现一个图片切割工具类

发布时间:2021-06-28 17:26:17 来源:亿速云 阅读:143 作者:Leah 栏目:移动开发

Android中怎么实现一个图片切割工具类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

图片切割工具类定义:

public class ImageSplitter
{
  /**
   * 将图片切成 , piece *piece
   *
   * @param bitmap
   * @param piece
   * @return
   */
  public static List<ImagePiece> split(Bitmap bitmap, int piece)
  {
    List<ImagePiece> pieces = new ArrayList<ImagePiece>(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<ImagePiece> mItemBitmaps = ImageSplitter.split(mBitmap, mColumn);
    Collections.sort(mItemBitmaps, new Comparator<ImagePiece>()
    {
      @Override
      public int compare(ImagePiece lhs, ImagePiece rhs)
      {
        return Math.random() > 0.5 ? 1 : -1;
      }
    });
}

关于Android中怎么实现一个图片切割工具类问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI