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