for(int i = 0; i < GridView.getChildCount(); i++) { if(GridView.getChildAt(i).isVisible())
You should consider that this is an abstract code snippet, just an illustrated approach to solve your problem.
Edit: The best way, in my opinion:
for(int visiblePosition = GridView.getFirstVisiblePosition(); visiblePosition <= GridView.getLastVisiblePosition(); visiblePosition++) { View view = GridView.getChildAt(visiblePosition);
source share