2

問題文:キャンバスを横方向と縦方向の両方で同じサイズにしたいと考えています。サイズは固定で、垂直方向 (A4 のようなキャンバス) に基づいている必要があります。したがって、キャンバスを水平方向にスクロールする機能が必要です。ただし、ScrollView でのスクロールに使用されるタッチ イベントと、キャンバスでの描画に使用されるタッチ イベントとの間に競合があります。

私が必要とするもの:ほとんどがこの解決策で解決できると思います:水平スクロールビュー内でフィンガーペイントし、ユーザーがスクロールできるようにするためのボタンを追加するだけです。私にとって、これは少し直感に反しています。私が望むのは、このアプリのように、キャンバスの側面に太いスクロールバーが常に表示されるようにすることです。

ここに画像の説明を入力

次に、これはユーザーがスクロールできる唯一の方法でもある必要があります。

私が試したこと:スクロールビューはすべてのタッチイベントを消費するため、スクロールビューの onTouch メソッドをオーバーライドしようとしました。しかし、これにより、スクロールバーを含むスクロールビュー全体に触れることができなくなります。

質問:これを ScrollView で実装することはできませんか? 独自のスクロールバー ウィジェットを作成し、キャンバスを含むビューと水平 (LinearLayout) に揃える必要がありますか? または、ScrollView が背景のタッチのみを消費するようにする方法はありますか?

4

1 に答える 1

1

オーバーライドではonTouch、座標を確認して、タッチがスクロール サムにあったのか、それともビューの残りの部分にあったのかを判断できます。

于 2012-11-20T13:39:38.997 に答える