一:要达到的效果

二:布局使用了GridLayout(五列三行)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.kirito.puzzlegame.MainActivity"><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"><HorizontalScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"><GridLayoutandroid:id="@+id/gl"android:columnCount="3"android:rowCount="5"android:layout_width="wrap_content"android:layout_height="wrap_content"/></HorizontalScrollView></ScrollView></RelativeLayout>

三:以二维数组来表示图片切割的各个部分,使用createBitmap方法切割图片,使用gridlayout的addview方法把图片块添加进去

package com.example.kirito.puzzlegame;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.GridLayout;
import android.widget.ImageView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private ImageView ivs[][] = new ImageView[5][3];private GridLayout gl;private ImageView null_iv;private static final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gl = (GridLayout) findViewById(R.id.gl);//从drawable下获取图片资源并将其转为bitmapBitmap bm = ((BitmapDrawable)getResources().getDrawable(R.drawable.a)).getBitmap();int bm_height = bm.getHeight() / 5;int bm_width = bm.getWidth() / 3;for (int i = 0; i < ivs.length; i++) {for (int j = 0; j < ivs[0].length; j++) {ivs[i][j] = new ImageView(this);//通过bitmap的createBitmap方法来切割图片,把完整图片分割成五行三列/*** createBitmap方法解析* Bitmap.createBitmap(source, 60, 0, 480, 260); // 320 - 60 = 260Basically, you are drawing from x = 60, y = 0 to x = 480 + 60, y = 260 on a Bitmap*///完整分割图片Bitmap bp = Bitmap.createBitmap(bm,j * bm_width,i * bm_height,bm_width,bm_height);ivs[i][j].setImageBitmap(bp);//这种均等切割为正方形的方式,最终只会显示原图的一部分,即把原图左上角部分的正方形切割下来,其他的就舍弃了/*Bitmap bp = Bitmap.createBitmap(bm,j * bm_height,i * bm_height,bm_height,bm_height);ivs[i][j].setImageBitmap(bp);*/ivs[i][j].setPadding(2,2,2,2);}}for (int i = 0; i < ivs.length; i++) {for (int j = 0; j < ivs[0].length; j++) {//通过给gridview添加切割好的小图片gl.addView(ivs[i][j]);}}}}

如何进行对图片的切割相关推荐

  1. PDF转换图片,图片的切割,图片转换PDF以及PDF加水印等记录贴

    PDF转变为图片: 把图片进行切割: 把图片转变回PDF: 为PDF加水印文字: 为PDF加水印图片. 1,PDF转变为图片 /*** @author dalin*将PDF格式的文件转换成png文件* ...

  2. python 三维图片 任意切片_python实现对任意大小图片均匀切割的示例

    改代码是在windows 系统下 打开路径和保存路径换成自己的就可以啦~ import numpy as np import matplotlib import os def img_seg(dir) ...

  3. html设置图片切割,HTML+CSS实现合并图片的切割显示以及背景渲染

    今天用了大约3小时才搞定了这么一小点工作.. 合并图片的切割显示是我早就想研究一下的,因为这个东西应用非常广泛,今天总算在HTML的框架里有了些了解. 核心代码为: div标签是个很好的东西,用来逻辑 ...

  4. 【Python+图片切割+图片合并】基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配、填充黑边的问题)

    基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配.填充黑边的问题) 前言 效果图 1.批量读取文件 2.清空目标目录方法(配合切割图片方法使用) 3.批量切割图片(像素不足 ...

  5. JEECG 上传头像,图片并切割

    Jcrop  + commons-fieldupload 上传组件上传图片并切割 图片上传并完成切割,图片的切割必须在服务器端完成,在客户端是无法进行切割的,至少在目前阶段. 1 母页面 regist ...

  6. java 将一张图片切割成n个小图片,任意切割一张图片成新图片

    根据图片的选中左上角度坐标和宽高来截取生成新的图片.测试通过,并已在项目中运用.但是不能切割动态的gif图片.有点遗憾,待优化. ---注:main方法调试代码记得修改图片路径 package com ...

  7. python opencv 实现从一个文件夹中读取图片做切割处理后放入另一个文件夹

    python opencv 实现从一个文件夹中读取图片切割处理后放入另一个文件夹. 实现的功能是把一个文件夹里的图片作处理,即把原图片中心为起点切割成1536*1536的图片,原图片必须大于这个的大小 ...

  8. python怎么切图片_Python切割图片成九宫格

    这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享. 原图如下: Image 我们想要利用这张图制作高逼格的九宫格朋友圈分享. 达到类似于这样的效果: 实现原理 ...

  9. java中如何切割图片_Java 切割图片代码

    Java 切割图片代码 (2012-09-04 10:39:48) 标签: 宽度 切割 源文件 工具类 java package com.lyis.commons.util; import java. ...

  10. python 3.6.5 pillow 实现图片的切割

    python在图像处理方面基于PIL库具有非常强大的功能 不幸的是没有支持python3的PIL版本 幸运的是我们可以通过pillow实现图像处理 安装过程不多赘述:可以参考 Win7 64位下Pyt ...

最新文章

  1. noip2019集训测试赛(五)
  2. PCA原理分析和意义(二)
  3. java基础-----接口
  4. 结合使用slf4j和Logback教程
  5. python 100days github_GitHub - rghwer/Python-100-Days: Python - 100天从新手到大师
  6. as400和java的区别_文件传输协议和AS400
  7. android seekbar 圆角,android - 最小或最大时,圆角android seekbar的ui奇怪行为 - 堆栈内存溢出...
  8. 大数据技术发展需注意那些问题
  9. C语言 数组和指针
  10. 在IDEA中玩转DEBUG模式,有BUG不会调试?不存在的。
  11. ps总结(一)-无失真的放大图片
  12. java sub_java调用zeromq PUB-SUB模式
  13. 大作手操作体系:突破后回调不下箱体可加仓,但是也有失误的时候!
  14. 芭蕉树上第十五根芭蕉-- qt帮助文档使用
  15. python-flask 设置网页保留缓存静态文件时间
  16. 红孩儿编辑器的渲染子系统的渲染模块的函数依赖关系图
  17. 二级渠道分销系统开发适合什么样的产品?
  18. 32位系统装8g内存条?能用吗
  19. 配置Chrony同步时间,以及ntpd,ntpupate
  20. 关于“其他容量”的清理方法

热门文章

  1. 计算机如何描述还原点,还原点
  2. CSS3 心情由晴雨表决定
  3. MATLAB美图软件算法研究,【网络多媒体学】matlab实现美图秀秀基本功能.ppt
  4. catfish V4.8.48-4.8.54 前台getshell复现过程
  5. 手机dpi换算方法,以iPhone4为例
  6. 电信aep平台是什么意思_杠杆股票配资平台米牛金融股票配资线上炒股配资公司:现代场内与场外配资是什么意思...
  7. C#中静态与非静态的区别
  8. 三 OpenGL常见平面图形绘制代码
  9. css奇数偶数选择器
  10. bfv同态加密_三、全同态加密-飞马(section 1)