Currently I have a working solution using threads (a new thread is instantiated and run for each image), but I read everywhere that threads are memory expensive and to better use other solutions in Android. But not quite sure what fits better for this case (AsynchTask, a thread pool, or ...?). The grid is scrollable, and if I scroll fast I'll be instantiating hundreds of threads at the same time...
One thing which helps is to cache the images, so the threads are just created and run the first time. But anyways, I would like to optimize this first loading.