Это зависит от того, какого типа эффекты или переходы вы хотите достичь, но я бы порекомендовал использовать представления Android.
Если вы хотите прокрутить вертикальный список изображений, просто используйте просмотр списка, содержащий ImageView. Посмотрите это демо API:
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List8.html
Если вы хотите прокрутить по горизонтали, взгляните на галерею
http://developer.android.com/guide/tutorials/views/hello-gallery.html
Что касается кэширования, эти представления поддерживают загрузку по требованию. Это делается в вашем адаптере методом getView. Этот метод вызывается, когда пользователь прокручивает ваши изображения. Вопреки тому, что показывают примеры, вы не всегда должны создавать новое представление в этом методе. Если convertView не является нулевым, это означает, что вы должны преобразовать это представление, чтобы оно содержало ваш новый контент.
Теперь вы, конечно, можете сделать это, используя OpenGL. Но вам придется начать с нуля, и вам придется переписать большую часть того, что предыдущие обзоры (Галерея, ListView) уже написали для вас. Так что я бы порекомендовал OpenGL, только если вы хотите, чтобы между вашими фотографиями были красивые анимации.