Android/Java 如何捏到 Zoom/Scroll 整个 activity? (不是 ImageView)

Android/Java How to Pinch To Zoom/Scroll an entire activity? (NOT an ImageView)

如何捏合以缩放(平滑地)并在整个 activity 屏幕上滚动?我发现许多 post 都在谈论捏合以缩放 ImageView,但这不是我想要做的。 在我的 activity 中,我有一个图像、文本和按钮。当用户捏缩放或滚动时,我希望它们全部均匀缩放。

在我的 xml 布局中,如果重要的话,我使用的是相对布局。目前我发现了一个放大和缩小整个 activity 的功能(仅限点击),但它不流畅并且不允许我在屏幕上滚动。有没有一种方法可以添加到我当前的代码中,或者是否有另一种方法可以做到这一点?谢谢

这是我的当前代码。java:

public class MapActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);

    View view =getLayoutInflater().inflate(R.layout.activity_map,null); 
    setContentView(view);

    view.setOnClickListener(new View.OnClickListener() {
        float zoomFactor = 1.3f;
        boolean zoomedOut = false;

        @Override
        public void onClick(View v) {
            if(zoomedOut) {
                v.setScaleX(1);
                v.setScaleY(1);
                zoomedOut = false;
            }
            else {
                v.setScaleX(zoomFactor);
                v.setScaleY(zoomFactor);
                zoomedOut = true;
            }
        }
    });

如有任何帮助,我们将不胜感激。谢谢

已解决:@MoQ 使用来自 this library!

的 GestureFrameLayout 为我提供了一个简单的库解决方案

已解决:@MoQ 使用来自 this library!

的 GestureFrameLayout 为我提供了一个简单的库解决方案