0
我想設置一個限制可滾動圖像的x和y範圍。這裏是我使用的代碼:Android:極限佈局滾動範圍
public class MapActivity extends Activity {
private LinearLayout container;
private int currentX;
private int currentY;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
container = (LinearLayout) findViewById(R.id.Container);
container.scrollTo(0, 0);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
currentX = (int) event.getRawX();
currentY = (int) event.getRawY();
break;
}
case MotionEvent.ACTION_MOVE: {
int x2 = (int) event.getRawX();
int y2 = (int) event.getRawY();
container.scrollBy(currentX - x2 , currentY - y2);
currentX = x2;
currentY = y2;
break;
}
case MotionEvent.ACTION_UP: {
break;
}
}
return true;
}
}
而我的map.xml看起來像這樣。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<LinearLayout
android:id="@+id/Container"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ImageView
android:id="@+id/imageView1"
android:src="@drawable/aowmap"
android:layout_height="752px"
android:layout_width="1712px"></ImageView>
</LinearLayout>
</LinearLayout>
我試過各種方法來獲得「容器」的X和Y,甚至圖像X和Y,但沒有運氣。我確信代碼會在ACTION_UP下,但我不知道該如何找到x和y。
是的,我不完全確定這是如何幫助。我只是沒有看到它。我嘗試過使用「x = container.getTop()」,但是這總是返回0 ...只需要找到佈局的當前x和y的方法... – cerealspiller
我發佈的代碼將限制用戶可以滾動到的區域 - 是不是你想要的?也許我誤解了 - 如果這種情況可能是你想要達到的效果的一個方面的圖表 – Kenny
我很新,所以我不確定這個代碼是如何實現的。編輯:我會嘗試查看DisplayMetrics,看看我能否找到一些教程。 – cerealspiller