Android View.scrollTo(x, y) 滚动到哪里?

发布于 2024-12-10 10:33:46 字数 562 浏览 0 评论 0 原文

scrollTo(int x, int y ) 说:

x 要滚动到的 x 位置

y 要滚动到的 y 位置

onScrollChanged(int l, int t, int oldl, int oldt) 说:

l 当前水平滚动原点。

t 当前垂直滚动原点。

我想知道但在任何地方都找不到,x,y 在哪里?左上?中心?我尝试了一些测试,但无法弄清楚。

scrollTo(int x, int y) says:

x the x position to scroll to

y the y position to scroll to

onScrollChanged(int l, int t, int oldl, int oldt) says:

l Current horizontal scroll origin.

t Current vertical scroll origin.

What I would like to know and can't find anywhere, is where is x,y? Top left? Center? I tried a few tests and can't figure it out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮倦 2024-12-17 10:33:46

经过广泛的研究和测试,我终于明白了 scrollTo() 有效。

(0,0)查看容器。当滚动到任何 (x,y) 点时,View 将放置在 (x,y) 坐标处。

如果 View 显示图像,位图,大于 View 本身,滚动到 (0,0) 将放置 在图像中心查看。这样,图像的左上角将位于(-dX/2, -dY/2),右下角将位于(mW - dX/2, mH - dY/2)dX 表示图像宽度与 查看。而dY表示图像的高度与查看

为了看到右下角而不是越过它(更低或更靠右),正确的调用是:scrollTo(mW - ivW - dX/2, mH - ivH - dY/2);

附图显示了 View 和位图图像定位。

图像和视图之间关系的图形表示。

After extensive research and testing I've finally understood how scrollTo() works.

(0,0) are the coordinates to the top left corner of the View container. When scrolling to any (x,y) point, the top left corner of the View will be placed at the (x,y) coordinates.

If the View is showing an image, Bitmap, larger than the View itself, scrolling to (0,0) will place the View in the center of the image. This way, the top left corner of the image will be located at (-dX/2, -dY/2) and the bottom right corner at (mW - dX/2, mH - dY/2). dX represents the difference between the widths of the image and the View. And dY represents the difference between the heights of the image and the View.

In order to see the bottom right corner and not go passed it (lower or further to the right), this is the proper call: scrollTo(mW - ivW - dX/2, mH - ivH - dY/2);

The attached image shows the graphical representation of the View and Bitmap image positioning.

Graphical representation of the relationship between the image and the view.

残月升风 2024-12-17 10:33:46

来自 getX()

此视图的视觉 x 位置(以像素为单位)。这相当于
TranslationX 属性加上当前的 le​​ft 属性。

对于 getY() 来说,它是从顶部开始的。所以 (0,0) 是左上角。

我不知道 scrollTo() 是否考虑了 translationX 属性,因为它是“最近的”,而且我已经有一段时间没有编码了,但我会我打赌确实如此。

From getX():

The visual x position of this view, in pixels. This is equivalent to
the translationX property plus the current left property.

For getY() it's from top. So (0,0) is top left.

I don't know if scrollTo() takes into account the translationX property, because it's "recent" and I haven't been coding for a while, but I'd bet it does.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文