Android华容道之一步一步实现-2-图片分割
因为华容道是16个格子,所以要把一张大一点的图片分割成16个相等的小图片。
可以使用Bitmap.createBitmap方法来进行。
直接上代码
ori_bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.koala);
原始图片
下面对原始图片进行切分,分为16张
ori_bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.koala);
int width = ori_bitmap.getWidth();
int height = ori_bitmap.getHeight();
int new_width = width / 4;
int new_height = height /4;
Matrix matrix = new Matrix();
matrix.postScale(0.5f,0.5f);
bitmap_width = new_width /2;
bitmap_height = new_height /2;
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
bitmaps[i*4+j] = Bitmap.createBitmap(ori_bitmap,new_width * j,new_height *i , new_width, new_height,matrix,true);
}
}
显示分割后的图片
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
//canvas.drawColor(Color.RED);
paint.setStrokeWidth((float) 5.0);
int offset_x = 100;
int offset_y = 100;
for (int i = 0; i < 4; i++) {
int x = offset_x ;
int y = offset_y + bitmap_height * i;
for (int j = 0; j < 4; j++)
{
Bitmap bitmap = bitmaps[i*4+j];
int x_1 = offset_x + j*bitmap.getWidth();
int y_1 = offset_y+i * bitmap.getHeight();
canvas.drawBitmap(bitmap, x_1 ,y_1 , paint);
canvas.drawLine(x_1, y_1, x_1, y_1+ bitmap_height, paint);
}
canvas.drawLine(x, y, x + bitmap_width * 4, y, paint);
}
}
除了显示图片之外,还绘制了几条边框线,为后面的华容道的实现打下外观基础。
实现后的效果如下图所示:
下一步
Android华容道之一步一步实现-3 -手指触摸处理
Android华容道之一步一步实现-2-图片分割相关推荐
- Android华容道之一步一步实现-4-图像块移动算法
下一个关键点就是图像块的移动,以如图为例. 假设空格处于第二行第三格,那么此时只有触摸第二行以及第三列的图像块的时候才需要移动图像块,因为别的图像块不能移动. 当触摸发生在合法的图像块的时候,即上面图 ...
- Android华容道之一步一步实现-3 -手指触摸处理
华容道关键点之一出现了,就是处理触摸,包括手指按下,抬起,移动等. 自己实现一个处理触摸的类,然后处理 onTouchEvent(MotionEvent event) 事件,在这里处理手指按下,抬起, ...
- Android华容道之一步一步实现-序言
女儿看了最强大脑的数字华容道节目之后,就缠着要玩数字华容道,买了实物版,玩了几天,感觉好像还没有过瘾,就让我做个手机版的数字华容道游戏. 说明一下,最终要实现的版本并不是最强大脑那种数字版的华容道,而 ...
- 一步一步教你在 Android 里创建自己的账号系统(一)
大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 大家在 ...
- 一步一步学ROP之Android ARM 32位篇
蒸米 · 2015/12/17 9:41 0x00 序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,可以用来绕过现代操作系统的各种 ...
- Android一步一步实现一款实用的Android广告栏
源码:BannerLayoutDemo 有图有真相: bannerLayoutDemo 开源界有一句很有名的话叫"不要重复发明轮子",当然,我今天的观点不是要反驳这句话,轮子理论给 ...
- 一步一步教你如何在AndroidStudio查看Android源码(AOSP源码)
一步一步教你如何在AndroidStudio查看Android源码(AOSP源码) idegen工具 要将Android系统源代码工程导入到Eclipse或者IntelliJ IDEA,关键是要有相应 ...
- 2020最新版Android一步一步教轻松通过ArcSoft虹软平台实现人脸识别功能,保姆级别教程?
Android实现人脸识别功能 第一步:注册并认证成为开发者. 第二步:创建应用 1.认证成功后,我们就可以开始创建应用. 2,填写信息 3.点击添加SDK 4.选择人脸识别 5.选择情况,如图所示. ...
- Android自定义View教你一步一步实现薄荷健康滑动卷尺
前言 前几天写了一篇一步一步教你实现即刻点赞效果后,实现点赞效果主要是自己对自定义View的一些canvas绘制,缩放知识,位移的理解.而朋友说HenCoder还有给出薄荷健康滑动卷尺,小米运动记录界 ...
最新文章
- 好想学python怎么猜人_学手艺我好想学个手艺哦可是脑子怎么想也想 – 手机爱问...
- PP模块快速入门之功能简介
- Qt Designer的buddy编辑模式
- hive遍历_从Hive中的stored as file_foramt看hive调优
- python内存池机制_python的内存管理机制
- ubuntu的磁盘扩容
- PE格式第七讲,重定位表
- 与虚拟机连接出现ora-12514错误解决方法
- HTML Agility Pack 搭配 ScrapySharp,彻底解除Html解析的痛苦
- “智慧城市”如火如荼 与“数字城市”又有何差别?
- python制作个人相册_这样精美的照片墙,其实python也能做
- 老李推荐:第6章2节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-获取命令字串...
- 小蚂蚁学习C语言(27)——C语言中的进制转换
- 2021 年“认证杯”数学中国数学建模网络挑战赛 B题解题思路
- Axure产品设计软件视频教程大全
- 三十一 我在软件园的那些日子里
- 2.4 设置工作表的背景图片 [原创Excel教程]
- 2020李宏毅学习笔记——15.Recurrent Netural Network 上
- 基于 Ng-zorro-antd 的企业后台模板 ng-alain
- win10怎么录屏幕视频带声音?有哪些需要注意的地方?
热门文章
- 苹果手机at系统_iOS14系统苹果手机如何设置充满电提示音?
- android 之四大组件的Activity详解
- android线性布局的实例
- 148. Leetcode 455. 分发饼干 (贪心算法-基础题目)
- NLP-基础知识-004(生成模型)
- 7、Reverse Integer(python)
- 【数学建模】MATLAB应用实战系列(九十三)-岭回归应用案例(附MATLAB和Python代码)
- 万物之始正则表达式全解析三部曲(上篇)-正则表达式基础知识及语法
- 字节跳动 ClickHouse 在 A/B 实验和模型训练的使用
- java classifier_Java ZeroR.buildClassifier方法代码示例