麦子学院Android开发教程ImageView通过matrix实现手势缩放

麦子学院Android开发教程ImageView通过matrix实现手势缩放

ID:37539139

大小:18.28 KB

页数:7页

时间:2019-05-24

麦子学院Android开发教程ImageView通过matrix实现手势缩放_第1页
麦子学院Android开发教程ImageView通过matrix实现手势缩放_第2页
麦子学院Android开发教程ImageView通过matrix实现手势缩放_第3页
麦子学院Android开发教程ImageView通过matrix实现手势缩放_第4页
麦子学院Android开发教程ImageView通过matrix实现手势缩放_第5页
资源描述:

《麦子学院Android开发教程ImageView通过matrix实现手势缩放》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、IT在线教育平台——麦子学院http://www.maiziedu.com本文章来给各位同学介绍一下Android开发之ImageView通过matrix实现手势缩放操作方法,我们知道安卓中ImageView本身有scaleType属性,通过设置android:scaleType=matrix可以用很少的代码就实现缩放功能了,下面我们来看看。关于ImageView的手势缩放,有很多种方法,绝大多数开源自定义缩放都是修改了ondraw函数来实现的。但是ImageView本身有scaleType属性,通过设置android:scaleType="matrix"可以用很少的代码就实现

2、缩放功能。缩放的优点是实现起来简单,同时因为没有反复调用ondraw函数,缩放过程中不会有闪烁现象。MATRIX矩阵可以动态缩小放大图片来显示,缩小图片:代码如下//获得Bitmap的高和宽intbmpWidth=bmp.getWidth();intbmpHeight=bmp.getHeight();//设置缩小比例doublescale=0.8;//计算出这次要缩小的比例scaleWidth=(float)(scaleWidth*scale);scaleHeight=(float)(scaleHeight*scale);//产生resize后的Bitmap对象Matrixma

3、trix=newMatrix();matrix.postScale(scaleWidth,scaleHeight);BitmapresizeBmp=Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);下面将一个自定义的实现了手势缩放的ImageView代码拷贝如下:代码如下packagecom.jcodecraeer.stargallerry;importandroid.content.Context;importandroid.graphics.Matrix;IT在线教育平台——麦子学院http://www.

4、maiziedu.comimportandroid.graphics.PointF;importandroid.util.AttributeSet;importandroid.util.FloatMath;importandroid.view.MotionEvent;importandroid.widget.ImageView;publicclassImageTouchViewextendsImageView{privatePointFstartPoint=newPointF();privateMatrixmatrix=newMatrix();privateMatrixcurr

5、entMaritx=newMatrix();privateintmode=0;//用于标记模式privatestaticfinalintDRAG=1;//拖动privatestaticfinalintZOOM=2;//放大privatefloatstartDis=0;privatePointFmidPoint;//中心点/***默认构造函数*@paramcontext*/publicImageTouchView(Contextcontext){super(context);}/***该构造方法在静态引入XML文件中是必须的*@paramcontext*@paramparamAt

6、tributeSetIT在线教育平台——麦子学院http://www.maiziedu.com*/publicImageTouchView(Contextcontext,AttributeSetparamAttributeSet){super(context,paramAttributeSet);}publicbooleanonTouchEvent(MotionEventevent){startPoint.set(www.maiziedu.com).ACTIONDOWNswitch(event.getAction()&MotionEvent.ACTION_MASK){caseM

7、otionEvent.ACTION_DOWN:mode=DRAG;currentMaritx.set(this.getImageMatrix());//记录ImageView当期的移动位置startPoint.set(event.getX(),event.getY());//开始点break;caseMotionEvent.ACTION_MOVE://移动事件if(mode==DRAG){//图片拖动事件floatdx=event.getX()-startPoint.x;//x轴移动距离fl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。