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实现的拼图游戏供大家参考:

在线美女拼图游戏:
http://tools.jb51.net/games/pintu

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

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

(0)

相关推荐

  • 非常实用的Android图片工具类

    本文实例为大家分享了Android图片工具类的具体代码,供大家参考,具体内容如下 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.content.Context; import android.grap

  • Android 多媒体播放API简单实例

    本文调用android的媒体播放器实现一些音乐播放操作 项目布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="matc

  • Android开发之超强图片工具类BitmapUtil完整实例

    本文实例讲述了Android开发之超强图片工具类BitmapUtil.分享给大家供大家参考,具体如下: 说明:为了方便大家使用,本人把大家常用的图片处理代码集中到这个类里 使用了LruCache与SoftReference /** * 图片加载及转化工具 ----------------------------------------------------------------------- 延伸:一个Bitmap到底占用多大内存?系统给每个应用程序分配多大内存? Bitmap占用的内存为:

  • Android开发之Adobe flash操作工具类

    本文实例讲述了Android开发之Adobe flash操作工具类.分享给大家供大家参考,具体如下: public class AdobeUtil { /** * 安装flash插件 */ public static void installAdobe(final Context context) { new AlertDialog.Builder(context).setTitle("安装flash插件").setPositiveButton("确定", new

  • Android多媒体教程之播放视频的四种方法

    本文主要给大家介绍的是关于Android播放视频的四种方法,分享出来供大家参考学习,下面来一起看看详细的介绍: 一.通过intent的方式,调用系统自带的播放器 Uri uri = Uri.parse("/storage/emulated/0/DCIM/Camera/20170521_200117.mp4"); //调用系统自带的播放器 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(uri,

  • Android开发之MediaPlayer多媒体(音频,视频)播放工具类

    本文实例讲述了Android开发之MediaPlayer多媒体(音频,视频)播放工具类.分享给大家供大家参考,具体如下: package com.android.imooc.chat; import java.io.IOException; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; impor

  • Android实现多媒体之播放音乐

    闲来无聊,最近了解了一下多媒体的一些初步知识. 音频播放主要设计到MediaPlayer这个类,播放音频的路径可以来源于三个地方. 1.应用内的音频 public class MediaPlayActivity extends AppCompatActivity { private SeekBar seekBar; private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceStat

  • Android使用WebView播放flash的方法

    本文实例讲述了Android使用WebView播放flash及判断是否安装flash插件的方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 最近帮一个同学做一个项目,断断续续的一些知识点记录一下.一个页面中有一个WebView,用来播放swf,如果系统中未安装flash插件,必须提示用户到market中安装. 二.解决方法: 下面做一个demo,效果图如下: 图1: 图2: 图3: 首先布局文件,很简单: 复制代码 代码如下: <RelativeLayout xmlns:android

  • Android开发实现的几何图形工具类GeometryUtil完整实例

    本文实例讲述了Android开发实现的几何图形工具类GeometryUtil.分享给大家供大家参考,具体如下: package com.android.imooc.goo; import android.graphics.PointF; /** * 几何图形工具 */ public class GeometryUtil { /** * As meaning of method name. 获得两点之间的距离 * * @param p0 * @param p1 * @return */ publi

  • Android开发之多媒体文件获取工具类实例【音频,视频,图片等】

    本文实例讲述了Android开发之多媒体文件获取工具类.分享给大家供大家参考,具体如下: package com.android.ocr.util; import java.io.File; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.database.Cursor; import android.graphics.Bitmap; import

  • android多媒体音乐(MediaPlayer)播放器制作代码

    本文实例为大家分享了android多媒体音乐播放器的具体实现代码,供大家参考,具体内容如下 首先,在AndroidManifest.xml中配置权限 <!-- 读取手机中的音乐 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 注释:Android多媒体音乐的几种来源 1.在andriod的应用中 MediaPlayer.create(this, R.r

随机推荐