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

时间:2013-05-23 06:30:14

标签: android scrollview

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

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

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

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

感谢。

2 个答案:

答案 0 :(得分:2)

见下面的代码,Check is this working

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

答案 1 :(得分:0)

是的,每个图像都在ScrollView由你定义。所以,你在滚动视图中更改任何修改。如果你有任何特殊需要,那么发布你的代码