android – ImageView捏合缩放比例限制和平移界限

android – ImageView捏合缩放比例限制和平移界限,第1张

概述我想创建一个有图像的画廊. 画廊中的图像应该是可缩放的并且可以改变.我可以缩小图像,但无法设置缩放限制,并防止图像从屏幕上移开. 我使用以下代码缩放图像: http://code.google.com/p/4chan-image-browser/source/browse/src/se/robertfoss/MultiTouch/TouchImageView.java?spec=svnd3e623 我想创建一个有图像的画廊.
画廊中的图像应该是可缩放的并且可以改变.我可以缩小图像,但无法设置缩放限制,并防止图像从屏幕上移开.
我使用以下代码缩放图像:
http://code.google.com/p/4chan-image-browser/source/browse/src/se/robertfoss/MultiTouch/TouchImageView.java?spec=svnd3e623ddeb6f9e97d9eba2c7aaa7c4567a3822b5&r=d3e623ddeb6f9e97d9eba2c7aaa7c4567a3822b5

第一种方法:
我使用touchImageVIEw将图像提供给画廊,这样可以让我缩小变焦
无法滚动画廊.即我不能区分’单一标签事件’和’标签滚动事件’.

第二种方法:
使用ImageVIEw将图像提供给图库,如果用户点击任何图库项目,可以在touchImageVIEw中显示所选图像,用户可以在此缩放图像.但这也阻止我滚动画廊视图.还有如何在所选图像上设置缩放限制和平移界限?

解决方法 这固定了我的缩放限制问题.图像放大/缩小到限制后,它就会进一步停止.它也很顺利,没有滞后. 0.7和2.0是最小和最大缩放级别.
....} else if (mode == ZOOM) {    float[] f = new float[9];    float newdist = spacing(event);    if (newdist > 10f) {            matrix.set(savedMatrix);            float tScale = newdist / dist;            matrix.postscale(tScale,tScale,mID.x,mID.y);    }    matrix.getValues(f);    float scaleX = f[Matrix.MSCALE_X];    float scaleY = f[Matrix.MSCALE_Y];    if(scaleX <= 0.7f) {            matrix.postscale((0.7f)/scaleX,(0.7f)/scaleY,mID.y);    } else if(scaleX >= 2.5f) {            matrix.postscale((2.5f)/scaleX,(2.5f)/scaleY,mID.y);    }}....
总结

以上是内存溢出为你收集整理的android – ImageView捏合缩放比例限制和平移界限全部内容,希望文章能够帮你解决android – ImageView捏合缩放比例限制和平移界限所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1131479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存