1
我創建了一個照片庫,允許您選擇多張照片,但我注意到使用縮略圖填充GridView可能會非常緩慢。我用一個定時器:Android中的快速縮略圖檢索
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
fetchNextThumb();
}
}, 0, 25);
它搜索GridView的兒童沒有縮略圖(這是我保持禁用),如果它尚未高速緩存中檢索從MediaStore正確的拇指,並且在UI線程上執行setImageBitmap():
private void fetchNextThumb()
{
for (int i = 0; i < gridView.getChildCount(); i++)
{
ImageSelectView isv = (ImageSelectView)gridView.getChildAt(i);
if (isv == null)
continue;
if (isv.isEnabled())
continue;
activeThumb = thumbCache.get(isv.getId());
if (activeThumb == null)
{
activeThumb = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), isv.getId(), MediaStore.Images.Thumbnails.MICRO_KIND, null);
thumbCache.put(isv.getId(), activeThumb);
}
activeView = isv;
runOnUiThread(setNextThumb);
return;
}
}
private Bitmap activeThumb;
private ImageSelectView activeView;
private Runnable setNextThumb = new Runnable() {
public void run() {
activeView.setImageBitmap(activeThumb);
activeView.invalidate();
activeView.setEnabled(true);
}
};
起初速度非常快,但在大約50張左右的縮略圖被抓住後開始放慢速度。任何人都知道加快縮略圖檢索的任何技巧?
感謝您的更新!你發現爲什麼內置畫廊與這種方法相比如此之快?我有完全一樣的問題。 – Mars 2015-02-04 21:56:22