Пожалуйста, попробуйте это
Получить высоту и ширину дисплея
Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Проверьте высоту после объявления GridView и соответственно установите Количество столбцов
Например
GridView gridView = (GridView)findViewById(R.id.app_gridview);
if(height <= 1024){
gridView.setNumColumns(5);
}else {
gridView.setNumColumns(6);
}
Я думаю, что это решит проблему