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>
私は「コンテナ」のS xとyとでも画像のxとyが、運を取得するためのさまざまな方法を試してみました。私はコードがACTION_UPの下に置かれると確信していますが、私はxとyを見つけるために何をそこに置くべきか分かりません。
ええ、私はこれがどのように役立つか正確には分かりません。私はそれを見ない。私は "x = container.getTop()"を使用しようとしましたが、これは常に0を返します...ちょうどレイアウトの現在のxとyを見つける方法が必要です... – cerealspiller
私が掲示したコードは、ユーザーがスクロールすることができる領域 - それはあなたが望むものではありませんか?おそらく私は誤解しています - あなたの試みが助けてくれるのかどうかの大雑把な図があれば、 – Kenny
私はこれでかなり新しいので、このコードがどのように私のものに実装されるかはわかりません。編集:私はDisplayMetricsを調べて、チュートリアルを見つけることができるかどうかを見てみましょう。 – cerealspiller