2017-04-03 73 views
1

如何捏缩放(平滑)并滚动我的整个活动屏幕?我发现了几十篇关于缩放ImageView的帖子,但那不是我想要做的。 在我的活动中,我有一个图像,文字和按钮。当用户捏缩放或滚动时,我希望它们均匀缩放。Android/Java如何缩放/滚动整个活动? (不是ImageView)

在我的xml布局中,如果有问题,我使用相对布局。目前我发现了一个放大和缩小整个活动的功能(仅在点击时),但不平滑,并且不允许我滚动屏幕。有没有添加到我当前的代码的方式,或者有另一种方法来做到这一点?由于

继承人我当前的代码在我的.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!

+2

也许你可以在你的视图中以root身份使用[this library](https://github.com/alexvasilkov/GestureViews/wiki/Usage)中的GestureFrameLayout。我没有自己尝试,但它似乎是你在找什么。 – MoQ93

+0

@Rotwang这工作完美!我无法告诉你我是多久才寻找一个顺利的解决方案。现在我希望它能在平板电脑上运行。再次感谢! –

+1

错误的信用。积分转到@MoQ,而不是我。 –

回答

0

解决:@MoQ给了我一个简单的库解决方案,使用从this library GestureFrameLayout!