Android画廊带捏合缩放功能

17

我找到了一个带有缩放功能的图库示例项目,并进行了一些错误修复。您可以在这里下载我的代码。

它只支持全屏显示,并将图像始终居中于屏幕高度。但我想把一个标题视图放在屏幕顶部,并对图像位置进行调整。图像位置应该是:

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

我不太擅长使用 Matrix。有人知道如何使自定义画廊在任何大小的屏幕上工作(不只是全屏)吗?


这是很棒的东西。你能解释一下主要的修复吗? - AlikElzin-kilaka
当我将ImageView的ScaleType从Matrix设置为fitxy时,缩放功能无法使用。为什么会发生这种情况? - hemanth kumar
这是我找到的最好(也是最简单)的照片库,但它有一些小毛病,比如在滑动或缩放后图像被推到窗口的右侧或底部。此外,它不允许你完全放大缩放。如果图像分辨率低,它也会缩得太多。 - AlikElzin-kilaka
3
这个项目可能有你需要的答案:https://github.com/sephiroth74/ImageViewZoom。我认为他们是根据 ImageView 而不是屏幕大小计算高度/宽度。 - AlikElzin-kilaka
2个回答

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

首先为您的项目链接点赞+1,我测试了它,完美运行,但我有一个与同一主题相关的悬赏问题,您能否帮忙查看一下:https://dev59.com/sXXYa4cB1Zd3GeqP86o1,另外我该如何利用您的项目实现无限画廊中的缩放功能?我需要使用您项目中的所有类吗?非常感谢。 - Android Stack

0

您可以使用以下代码行为图库添加图片缩放捏合选项:

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;

或者你可以下载示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接