- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
my_gallery特效,旋转,倒影,教程
Gallery特效Android中gallery特效的使用,使用比较多的就是旋转,倒影,效果,让后可以通过自己的创意,写出更好的效果。例:旋转效果(Gif格式的图片,保存后可以看到动画效果)网上的搜索的效果基本上是这种效果:其实这样的效果很多,看自己的想象力。把原理弄清楚了基本上是可以实现的,其中几个比较重的知识是,Matrix和Camera类的应用。都是android.graphics.包下面的,除了倒影效果外,gallery的其他的所有的效果都是使用这两个类来完成的。这两方面的知识可以参考:my_android.graphics.Matrix学习笔记.docx,和 my_android.graphics.Camera图片绕X,Y,Z轴旋转.docx 文档,我会一起打包。倒影效果:思路获取一张图片---》反转高度为原来的1/2---》在新的图片上会一个渐变的矩形框-----》把这几个按照顺序全部画到画布上---》ok任务结束,放回给Gallery的视图,注意是在适配器中完成这个操作的。具体代码就在不在这里讲,有代码:主要讲几个需要注意地方很容易忽略的位子,gallery可以一直转动的效果,就是说即使只有5张图片,可以循环的拖动,这个效果其实没有真正的实现只是一个假象,我们在适配器中getContent(),设置他的返回值很大,例:Integer.Max_Value差不多有21亿多大然后返回视图的时候用position取余,可以达到这样的效果;2.截图中我们看到有对图片的处理,因为gallery中的每一个Item能够接受的图片的大小是有限制的,我们创建Bitmap的时候需要给一个参数给Bitmap来减少图片所占的内存,并且以流的形式来读取,这样可以避免一个内存错误的问题。其中options.inSampleSize = 5是表示放大缩小的比例。3.图片的大小可能是各种尺寸的,我们需要做大小的统一处理,设置imageView的layoutParams来完成,(130,90)是最终输出图片的大小。也就是Item中每一个Item。旋转效果:思路在根据item(以后出现的item都是表示gallery中的一个视图),所在的位置来计算它的旋转角度------》根据旋转角度来计算缩放大小,----》应用旋转和缩放效果,这个流程看上去很简单,但是细节确实很多,特别是一些参数的设置,必须自己慢点摸索出来,才能做出不错的效果。我们需要重写gallery类的方法:getChildStaticTransformation(View child, Transformation t)主要是用来控制gallery中每个图片的旋转(重写的gallery中方法),计算传过来的item的半径值,用来item判断是否在中心位置,如果在中心位置是不需要旋转的,如果不是在根据和屏幕中心位置来计算旋转角度,判断中心位置的方式:首先获取屏幕的半径值,mCoveflowCenter://主要功能的代码 private void transformImageBitmap(ImageView child, Transformation t, int rotationAngle) { //对效果进行保存 mCamera.save(); //获取Matrix这个很重要, final Matrix imageMatrix = t.getMatrix(); //图片高度 final int imageHeight = child.getLayoutParams().height; //图片宽度 final int imageWidth = child.getLayoutParams().width; //返回旋转角度的绝对值 final int rotation = Math.abs(rotationAngle); // As the angle of the view gets less, zoom in if (rotation mMaxRotationAngle) {//如果旋转角度的绝对值小于最大的旋转角度,我们按照比例来缩放,这里根据自己的需要来更改缩放的比例, float zoomAmount = (float) (mMaxZoom + (rotation * 1.5)); mCamera.translate(0.0f, 0.0f, zoomAmount); } else {// mCamera.translate在Z轴上正向移动camera的视角,实际效果为放大图片。 // 如果在Y轴上移动,则图片上下移动;X轴上对应图片左右移动。 rotationAngle = -(int) (((float) (mCoveflowCenter - Math.abs(getC
您可能关注的文档
- 三星Galaxy S4刷机.doc
- 人大商学院博士入学考试试题.doc
- 三星GALAXY Note II N719和三星GALAXY Note II N7102 16GB双卡公开版有什么区别.doc
- 必修3Module 6Old and New.doc
- 《魔幻宫殿》中盗梦者.docx
- 美剧实习医师格蕾中出现的英文版医学词汇2.doc
- GMP检查缺陷项整改思路.docx
- 名言警句中英文对照.doc
- 饥饿游戏人物大解析.doc
- 斯里兰卡十日游行程计划书.doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)