今天做了一个功能需要在一个页面上显示一个流程图,因为这个流程图本身比较大,显示在页面上之后,我们并不能清楚的看清里面的字,这时候就要我们可以通过缩放来查看流程图,想到就给原来的ImageView的添加缩放,之前就写过类似的代码,不想再写了就打算在网上找找,果然找到了一位网友的,他对ImageView继承,重写了onTouchEvent,实现了缩放,我就使用的网友的代码,可以使用到的时候发现,由于需要设置android:scaleType=”matrix”,这样在流程图刚开始就是放大的效果,很不好看,怎么解决这个问题,我想在布局文件中,我们不能设置scaleType,应该在onTouchEvent 中去设置,这样我们刚进去就不会有缩放的效果,测试发现,这个问题解决了,下面是我在网友代码的基础上添加的代码:
case MotionEvent.ACTION_MOVE: if(mode==DRAG){ //此实现图片的拖动功能... matrix.set(savedMatrix); matrix.postTranslate(event.getX()-start.x, event.getY()-start.y); } else if(mode==ZOOM){// 此实现图片的缩放功能... float newDist=spacing(event); if(newDist>10){ matrix.set(savedMatrix); float scale=newDist/oldDist; matrix.postScale(scale, scale, mid.x, mid.y); } } break; } setScaleType(ImageView.ScaleType.MATRIX); setImageMatrix(matrix); return true;在解决上面的问题中,查看了这二个博客的内容,在这里对二位表示感谢,下面给出链接: 可缩放的 Imageview
scaleType 的属性的文章:scaleType
新闻热点
疑难解答