Firstly, downloading all of these images is really a problem. 1000 images 16 by 16 pixels in size - 256,000 pixels. Even when using 4 bytes for each pixel, only one MB of image data is obtained, which is small.
If you really need / need to reduce the number of downloaded images in memory, you can only load the visual fragments / images needed for your card into memory and a few more to increase responsiveness for your game.
For example, if your game shows a map of n onto m tiles, you can load fragments of n+2 by m+2 into memory or visually display it (where * are visible tiles and + additional loading of the tile into memory):
+++++++++++ +*********+ +*********+ +*********+ +++++++++++
When the user moves the map, you delete links to tiles that you no longer need, and start downloading new fragments. Since you have one tile in reserve in memory, moving the map should go pretty smoothly. Of course, if your tiles are quite small or moving the map fairly quickly, you can increase the number of extra tiles that you use.
Robin source share