ImageView ImageView随手势变化 动态缩放

本文介绍了一种在Android中解决ImageView初始放大问题的方法。通过在触摸事件中设置scaleType为MATRIX,而非在布局文件中设置,可以避免图片加载时默认放大。文章提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做了一个功能需要在一个页面上显示一个流程图,因为这个流程图本身比较大,显示在页面上之后,我们并不能清楚的看清里面的字,这时候就要我们可以通过缩放来查看流程图,想到就给原来的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值