欢迎来到天天文库
浏览记录
ID:42574757
大小:45.88 KB
页数:13页
时间:2019-09-18
《Android动画教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android动画教程 动画效果可以大大提高界面的交互效果,因此,动画在移动开发中的应用场景较为普遍。掌握基本的动画效果在成熟的软件开发中不可或缺。除此之外,用户对于动画的接受程度远高于文字和图片,利用动画效果可以加深用户对于产品的印象。因此本文给出安卓设计中几种常见的动画效果。 基础知识 在介绍安卓中的动画效果之前,有必要介绍一下安卓中的图片处理机制。图片的特效包括图形的缩放、镜面、倒影、旋转、平移等。图片的特效处理方式是将原图的图形矩阵乘以一个特效矩阵,形成一个新的图形矩阵来实现的。矩阵Matrix类,维护了一个3*3的矩阵去更改像
2、素点的坐标。Android手机的屏幕坐标系以左上角为原点,从左向右为x轴正方向,从上到下为y轴正方向。第一行表示像素点的x坐标:x=1*x+0*y+0*z,第二行表示像素点的y坐标:y=0*x+1*y+0*z,第三行表示像素点的z坐标:z=0*x+0*y+1*z。图片的特效处理正是通过更改图形矩阵的值来实现的,在android下Matrix这个类帮我们封装了矩阵的一些基本用法,所以我们可以直接使用即可。用代码编辑图片,最好处理都是图片在内存中的拷贝,不去处理原图,因此需要用Bitmap创建一个与原图大小一致,格式相同的空白位图。 对照片进行操作的基本
3、步骤: 1.创建一个空白的bitmap,宽高信息和原图保存一致; 2.创建一个画板; 3.创建一个画笔; 4.设置matrix矩阵; 5.对照着原图在画纸上面画出一模一样的样子出来。 下面分别给出对图片缩放、平移、旋转、镜面操作的代码。/***图片缩放**/privatevoidzoom(){BitmapsrcBitmap=BitmapFactory.decodeFile("mnt/sdcard/b.jpg");iv_src.setImageBitmap(srcBitmap);BitmapcopyBitma
4、p=Bitmap.createBitmap(srcBitmap.getWidth(),srcBitmap.getHeight(),srcBitmap.getConfig());Canvascanvas=newCanvas(copyBitmap);Paintpaint=newPaint();paint.setColor(Color.BLACK);Matrixmatrix=newMatrix();matrix.setScale(0.6f,0.6f);canvas.drawBitmap(srcBitmap,matrix,paint);iv_dest.setIma
5、geBitmap(copyBitmap);}/***图片平移**/publicvoidtranslation(){Optionsops=newOptions();ops.inSampleSize=4;//等比放缩BitmapsrcBitmap=BitmapFactory.decodeFile("/mnt/sdcard/b.jpg",ops);iv_src.setImageBitmap(srcBitmap);BitmapcopyBitmap=Bitmap.createBitmap(srcBitmap.getWidth(),srcBitmap.getHeigh
6、t(),srcBitmap.getConfig());Canvascanvas=newCanvas(copyBitmap);Paintpaint=newPaint();paint.setColor(Color.BLACK);Matrixmatrix=newMatrix();matrix.setTranslate(100,100);canvas.drawBitmap(srcBitmap,matrix,paint);iv_dest.setImageBitmap(copyBitmap);}/***旋转**/publicvoidscole(){BitmapsrcB
7、itmap=BitmapFactory.decodeFile("/mnt/sdcard/b.jpg");iv_src.setImageBitmap(srcBitmap);BitmapcopyBitmap=Bitmap.createBitmap(srcBitmap.getWidth(),srcBitmap.getHeight(),srcBitmap.getConfig());Canvascanvas=newCanvas(copyBitmap);Paintpaint=newPaint();paint.setColor(Color.BLACK);Matrixma
8、trix=newMatrix();matrix.setRotate
此文档下载收益归作者所有