作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个允许您选择多张照片的照片库,但我注意到用缩略图填充 GridView 的速度可能非常慢。我使用计时器:
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
fetchNextThumb();
}
}, 0, 25);
它在 GridView 中搜索没有缩略图的 child (我一直禁用),如果尚未缓存,则从 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 个缩略图后开始变慢。有人知道加快缩略图检索的任何技巧吗?
最佳答案
好吧,我明白了为什么有些缩略图加载速度比其他缩略图快。我正在使用
managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{ MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID }, null, null, MediaStore.Images.Media._ID);
这显然是从 SD 卡和设备中抓取图像。毫不奇怪,SD 卡图像的缩略图加载速度比设备上的缩略图慢。不过,内置画廊似乎没有这个问题。我现在的解决方案是在加载一次 SD 卡图像后保存设备上的缩略图。
对于任何有兴趣实现自定义照片库的人来说,上面的代码应该工作得很好。如有任何问题,请随时给我发消息。
关于android - Android 中的快速缩略图检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537364/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!