欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发之图片切割工具类定义与用法示例

程序员文章站 2024-02-09 22:26:52
本文实例讲述了android开发之图片切割工具类定义与用法。分享给大家供大家参考,具体如下: 该工具类比较常见于拼图游戏中使用。这里演示了类基本的定义与使用方法。 图片...

本文实例讲述了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;
      }
    });
}

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

在线美女拼图游戏:

更多关于android相关内容感兴趣的读者可查看本站专题:《android图形与图像处理技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

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