This problem should be fixed with this new code.
Instead of storing all icons in a map, I save them to a cache:
Code:
pMap.IconID = ConvertNameToID(packagename)
Dim Drawable As BitmapDrawable = PM.GetApplicationIcon(packagename)
ULV.FeedDiskCacheWithBitmap(Drawable.Bitmap, pMap.IconID, False)
And I read my icon with LoadImageAsync (I don't set a location because the icon is supposed to be found in the disk cache):
Code:
ULV.LoadImageAsync(IV, "", PMap.IconID, Gravity.FILL)
I added a function in this example, ConvertNameToID, which will probably be useful in all cases where you want to convert a string to an unique identifier. With very long strings, there's a (very small) risk of collision so you should use it mainly for file names, people names, etc.