带有捏缩放的 Android 图库

Posted

技术标签:

【中文标题】带有捏缩放的 Android 图库【英文标题】:Android Gallery with pinch zoom 【发布时间】:2012-05-03 08:55:18 【问题描述】:

我找到了gallery with pinch zoom 的示例项目并修复了一些错误。你可以在here下载我的代码

它只支持全屏。它始终将图像居中到屏幕高度。但我想将标题视图放在屏幕顶部并调整图像的位置。图片位置应为:

header height + (screen height - header height) / 2

我不太擅长使用Matrix。任何人都知道如何使自定义图库以任何尺寸(不仅仅是全屏)工作?

【问题讨论】:

这是很棒的东西。你能解释一下主要的修复吗? 当我从 Matrix 将 imageview scaltype 设置为 fitxy 时,缩放不起作用..为什么会发生这种情况 这是我找到的最好的(也是最简单的)照片库,但它有一些小故障,例如在滑动或缩放后将图像推到窗口的右侧或底部。此外,它不会让您一直放大。此外,如果图像处于低分辨率,它会缩小太多。 您可能在这个项目中有答案:github.com/sephiroth74/ImageViewZoom。我认为他们根据 ImageView 而不是屏幕尺寸来计算高度/宽度。 【参考方案1】:

您可以使用我的Pinch to zoom Gallery 项目。您可以从图库中选择任何图像,然后在onDoubleTap(MotionEvent e) 打开完整图像并进行缩放。

【讨论】:

首先为您的项目链接 +1 投票,我对其进行了测试并且运行良好,但是我有与同一主题相关的赏金问题,请您检查一下:***.com/questions/18228934/…,我该如何利用你的项目在我的无限画廊中实现缩放能力,我需要使用你项目中的所有类吗,非常感谢【参考方案2】:

您也可以使用以下代码行为画廊执行图像缩放缩放选项:

case MotionEvent.ACTION_POINTER_DOWN:
    oldDist = spacing(event);
    Log.d(TAG, "oldDist=" + oldDist);
    if (oldDist > 10f) 
        savedMatrix.set(matrix);
        midPoint(mid, event);
        mode = ZOOM;
        Log.d(TAG, "mode=ZOOM" );
    
    break;

或者你可以download the example。

【讨论】:

以上是关于带有捏缩放的 Android 图库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Android 内置的手势监听器和缩放监听器实现捏缩放和拖动

android imageView:设置拖动和捏缩放参数

捏缩放(绘图线)Android Canvas后获取正确的坐标

自定义捏缩放视图

如何用捏缩放游戏对象?

检测移动浏览器捏缩放