效果如图:

类似in,百度魔图,的贴图功能  核心的地方:单/多点 旋转缩放后记录各个顶点小图标位置

引用这里 http://blog.csdn.net/xiaanming/article/details/42833893

涉及自定义viewgroup,自定义view以及Touch事件的处理,手势事件的封装等

在自定义的viewgroup中维护一个List<子view>,  Touch事件在viewgroup中进行处理,根据当前选中的List中的子view的各顶点坐标

以及四个角上的小图标长宽 当前触摸点坐标位置  来判断是否点中 顶点小图标

viewgroup中先遍历list进行绘制子view,后绘制所选子view各角顶点小图标

1.添加子view在DemoActivity的showAddDialog()方法中 有例子

操作viewgroup的实例 picsGestureLayout.addChildImage()进行添加子view 并刷新界面

2.删除子view在DemoActivity的onClick方法  case R.id.btnDelete:

操作viewgroup的实例 picsGestureLayout.getSelectedChildImage获取当前选中子view

后用该实例picsGestureLayout.deleteChildImage(当前选中子view)进行删除List中子view 并刷新界面

3.修改子view在DemoActivity的showModifyDialog中

同上,拿到当前子view 直接替换其bitmap 并刷新viewpicsGestureLayout.invalidate();

这里直接在主线程刷新view了,项目里要考虑多线程或者异步任务,另外修改子view时边框等处理的并不好,如有需要自行改动

4.子view上移一个图层 在DemoActivity的onClick方法  case R.id.btnUplayout;

同上拿到viewgroup实例 picsGestureLayout.upSelectedImageLayout();把当前选中的子view上移一个图层 并刷新界面

5.字view下移一个图层在DemoActivity的onClick方法  case R.id.btnDownlayout;

同上拿到viewgroup实例 picsGestureLayout.downSelectedImageLayout();把当前选中的子view上移一个图层 并刷新界面

6.清空所有子view,实际就是删除viewgroup中维护的List<子view>并刷新界面

同上拿到viewgroup实例 picsGestureLayout.clearChildImage(); 删除所有子view,并更新界面

7.可扩展添加画笔涂鸦图层    在viewgroup源码中onDraw(Canvas canvas)函数里,依次绘制完子view,顶点小图标之后

可添加一个最上层,(添加一个全透明的图蒙住屏幕,在这个图上绘制各种涂鸦即可)作为画笔涂鸦的图层  将会在所有图层之上

里面工具类写的太烂了,15年写的原谅我吧.有需要的可以直接用.希望大家都为开源贡献一份力量.

//ps 当时写的时候一直遇到旋转后坐标位置不准跑偏的问题,后来才知道  是因为旋转时候,三角函数在各个象限内计算不同 具体看代码

最后eclipse工程源码:

http://files.cnblogs.com/files/andlp/com.maneater.picscreator.zip

安卓贴图源码--->单点触控.多点触控.类似in/百度魔图的更多相关文章

  1. Android Handler处理机制 ( 一 )(图+源码分析)——Handler,Message,Looper,MessageQueue

    android的消息处理机制(图+源码分析)——Looper,Handler,Message 作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习 google大牛们的设计思想. ...

  2. 一款安卓ShowcaseView视图源码效果

    该源码是从源码天堂那边转载过来的,大家可以看看一下吧啊,一款安卓ShowcaseView视图源码效果,非常不错的,特别是在做引导时使用. 源码下载地址:http://code.662p.com/vie ...

  3. 点菜网---Java开源生鲜电商平台-系统架构图(源码可下载)

    点菜网---Java开源生鲜电商平台-系统架构图(源码可下载) 1.点菜网-生鲜电商平台的价值与定位. 生鲜电商平台是一家致力于打造全国餐饮行业智能化.便利化.平台化与透明化服务的创新型移动互联网平台 ...

  4. unity3d 触屏多点触控(旋转与缩放)

    unity3d 触屏多点触控(旋转与缩放) /*Touch OrbitProgrammed by: Randal J. Phillips (Caliber Mengsk)Original Creati ...

  5. 中秋礼物!开源即时通信GGTalk安卓版全新源码!

    经过连续两个多月的努力(开发.调试.测试.改bug),我们终于赶在中秋国庆之前能把全新的GGTalk Android版本献给大家. 4年之前我们就推出了GGTalk Android的第一个版本,但是功 ...

  6. jQuery 2.0.3 源码分析 Deferred(最细的实现剖析,带图)

    Deferred的概念请看第一篇 http://www.cnblogs.com/aaronjs/p/3348569.html ******************构建Deferred对象时候的流程图* ...

  7. 转 Android的消息处理机制(图+源码分析)——Looper,Handler,Message

    作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想.android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种 ...

  8. 【转】android的消息处理机制(图+源码分析)——Looper,Handler,Message

    原文地址:http://www.cnblogs.com/codingmyworld/archive/2011/09/12/2174255.html#!comments 作为一个大三的预备程序员,我学习 ...

  9. android的消息处理机制(图+源码分析)——Looper,Handler,Message

    android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了.这不,前几天为了了解android ...

随机推荐

  1. 搭建一个Mongodb (Windows) 版本

    因为有项目需要借助nosql 做一个中间层,所以选择了Mongodb 来搞,其实之前呢已经搭建过这部分的环境,这次再次搭建也是记录一下,当时给自己的一个扫盲123教程 借助Mongodb 其实也是缓存 ...

  2. Centos6下安装Hadoop2.6 问题总结

    一. 安装背景:VirtualBox下安装三台Centos6.8虚拟机(一主:master, 两从:slave1,slave2) Centos版本:CentOS-6.8-x86_64 网络配置:三台虚 ...

  3. hibernate基础dao类

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:数据库的保存.更新.删除:sql.hql查询:分页查询:调用存储过程 创建hibernate基础dao类: BaseD ...

  4. Windows下配置Squid反向代理服务器

    Squid是一款类Unix系统下非常流行的服务器软件,其最重要的功能就是在客户端和服务端之间建立缓存.因而Squid可以用作反向代理,部署多级缓存或者搭建CDN等,无论名称是什么,本质上都是一样的.目 ...

  5. 【Windows编程】系列第七篇:Menubar的创建和使用

    上一篇我们学习了利用windows API创建工具栏和菜单栏,与上一篇紧密联系的就是菜单栏,菜单栏是一个大多数复杂一些的Windows应用程序不可或缺的部分.比如下图就是Windows自带的记事本的菜 ...

  6. js/jquery/html前端开发常用到代码片段

    1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...

  7. BZOJ 3524: [Poi2014]Couriers [主席树]

    3524: [Poi2014]Couriers Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1892  Solved: 683[Submit][St ...

  8. 洛谷P1262 间谍网络[强连通分量 BFS]

    题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报 ...

  9. AutoCAD2006的安装及CASS7.1的配置破解

    -----本文只限于学习交流,商业用途请支持正版! -----转载请注明:http://www.cnblogs.com/mxbs/p/6193190.html 准备: AutoCAD2006.CASS ...

  10. 将“早期版本的Windows”改名

    将“早期版本的Windows”改名,并修改系统等待时间 问题描述:       先装Windows XP,再装Windows 7,启动菜单会出现“早期版本的Windows”与“Windows 7”两个 ...