i got it working using the globallayout listener this is my in imageAdapter
if(!heightSet ){
final LinearLayout tv = (LinearLayout) gridView.findViewById(R.id.bottleover);
ViewTreeObserver vto = tv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
bottleheight = tv.getHeight();
heightSet = true;
System.out.println("bottle hiegiht " + bottleheight);
//turn off listenter
ViewTreeObserver obs = tv.getViewTreeObserver();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
obs.removeOnGlobalLayoutListener(this);
} else {
obs.removeGlobalOnLayoutListener(this);
}
}
});
}