2017-04-03 78 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!