xスクロールするx位置
yスクロールするy位置
onScrollChanged(int l, int t, int oldl, int oldt)
は言う:
l現在の水平スクロールの原点。
t現在の垂直スクロールの原点。
私が知りたいのですが、どこにも見つからないのですが、x、yはどこですか?左上?センター?いくつかのテストを試しましたが、理解できません。
広範囲にわたる調査とテストの結果、私はようやく scrollTo() がどのように機能するかを理解しました。
_(0,0)
_は View コンテナの左上隅の座標です。 _(x,y)
_ポイントまでスクロールすると、 View の左上隅が_(x,y)
_座標に配置されます。
View が画像を表示している場合、- Bitmap は View 自体よりも大きいため、_(0,0)
_にスクロールすると ビュー 画像の中央。これにより、画像の左上隅が_(-dX/2, -dY/2)
_に、右下隅が_(mW - dX/2, mH - dY/2)
_に配置されます。 dX
は、イメージの幅と View の差を表します。そしてdY
は画像の高さと View の違いを表します。
右下隅を表示し、それを渡さないようにするために(下または右に)、これは適切な呼び出しです:scrollTo(mW - ivW - dX/2, mH - ivH - dY/2);
添付画像は View のグラフィック表現とビットマップ画像の配置を示しています。
から getX()
:
このビューの視覚的なx位置(ピクセル単位)。これは、translationXプロパティと現在の左のプロパティに相当します。
getY()
の場合、上からです。したがって、(0,0)は左上です。
scrollTo()
がtranslationX
プロパティを考慮に入れるかどうかはわかりません。これは「最近」であり、しばらくコーディングしていないためですが、そうは思わないでしょう。