gpt4 book ai didi

android - 缩放 Activity

转载 作者:行者123 更新时间:2023-11-29 20:33:49 30 4
gpt4 key购买 nike

所以我花了几个小时在网上搜索帮助,但所有论坛和文档都没有向我正确解释我应该采取的最佳方式。

目前我有一个具有 XML 相对布局的 Activity (背景设置为 map 图片),我想实现多手势缩放功能。经过大量阅读,我似乎应该使用必须在 View 内实现的 ScrollGestureDetector。

我想做到这一点,以便用户可以在屏幕上的任何地方使用 2 指针手势,它会放大。问题是我不知道如何实现它,也找不到资源来告诉我如何实现对 Activity 执行此操作。

有什么方法可以为我的 RelativeLayout 实现 ScrollGestureDetector 吗?我是否应该创建一个覆盖整个屏幕并呈现图片的自定义 View ,以便我可以在类定义中实现 ScrollGestureDetector?我该怎么办?

最佳答案

如果图像位于 ImageView 内,使用双指缩放缩放图像效果最佳。 ImageView 可以任意缩放图像,而背景图像仅根据 View 边界进行缩放。

您只需对包含 ImageView 的布局调用 setContentView()

要在您的代码中使用 ScaleGestureDetector,您必须执行以下操作

  1. 在您的 View 中声明一个 ScaleGestureDetector。

    private ScaleGestureDetector mScaleGestureDetector;
  2. 使用缩放事件监听器初始化它,最好在 onCreate() 中:

    mScaleGestureDetector = new ScaleGestureDetector(this, new ScaleGestureDetector.OnScaleGestureListener() {
    @Override
    public boolean onScale(ScaleGestureDetector detector) {
    // your impl here
    return false;
    }

    @Override
    public boolean onScaleBegin(ScaleGestureDetector detector) {
    // your impl here
    return false;
    }

    @Override
    public void onScaleEnd(ScaleGestureDetector detector) {
    // your impl here
    }
    })
  3. 将 ScaleGestureDetector 添加到您的 onTouchEvent() 方法中:

    @Override
    public boolean onTouchEvent(MotionEvent event) {

    mScaleGestureDetector.onTouchEvent(event);

    // do other stuff
    return super.onTouchEvent(event);
    }

奇怪的是,ScaleGestureDetector.onTouchEvent() 总是 返回 true,但是您可以使用 isInProgress() 来判断缩放操作是否已经开始.

关于android - 缩放 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618175/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com