android – 如何在ScrollView中检查视图是否在特定区域中可见

我的应用程序中有一个ScrollView,这个ScrollView包含多个图像,我们必须向上滚动到底部才能查看每个图像,因为scrollview的区域大于屏幕大小.

现在问题是如何检查ScrollView的每个图像是否在特定区域(由我定义)内.

如果图像在该区域内,我想做某些事情,如果不是,那么我想做一些不同的事情.

请帮助我解决问题,任何帮助都会很明显.

谢谢.

最佳答案 见下面的代码,检查这是否有效

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);
}
点赞