如何检查ScrollView内特定区域中的视图是否可见

4
我有一个ScrollView在我的应用程序中,这个ScrollView包含了很多图像。由于ScrollView的面积比屏幕大,我们必须向上滚动才能查看每张图片。
现在的问题是如何检查ScrollView中每张图片是否在我指定的特定区域内。
如果图像在该区域内,我想要做某些处理,否则我想要进行其他处理。
请帮助我解决这个问题,非常感谢你的帮助。
谢谢。

你可以使用 image.getVisiblity()。 - NaserShaikh
它只会检查视图的可见性,但我想检查特定区域内视图的可见性。 - Salman Khan
我不太明白...所以你想检查scrollView中imageView的可见性? - NaserShaikh
在ScrollView内部的特定区域内,假设我的屏幕高度为800,如果在300到400之间,则应该得到回调。 - Salman Khan
2个回答

2
请看下面的代码,检查它是否有效。
public static boolean isInVisible(ScrollView scrollView, View view, Rect region, boolean relative)
{
    int top = scrollView.getScrollY() + region.top;
    int bottom = scrollView.getScrollY() + region.bottom;

    if(!relative)
    {
        // If given region is not relative to scrollView 
        // i.e 0,0 does not point to first child left and top
        top -= scrollView.getTop();
        bottom -= scrollView.getTop();
    }

    Rect rect = new Rect(region);
    rect.top = top;
    rect.bottom = bottom;
    Rect childRegion = new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());

    return Rect.intersects(childRegion, region);
}

很好,但是我应该填什么在(Rect region)里面呢?我对这个不太熟悉。 - Mdlc

0

是的,ScrollView 中的每个图像都由您定义。因此,您可以在 ScrollView 中进行任何修改。如果您有任何特定需求,请发布您的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接