【发布时间】:2018-04-11 09:34:20
【问题描述】:
我正在解决关于 Image Loader 的问题,但我遇到了一些问题..
- 我想要在 GridView(或 ListView)中显示许多图像(大约 400 张)。
- 我不想像 Picasso、Glide 那样使用图书馆。
这就是问题所在。
当我调用从 url 转换为位图的方法时?
3.1。在 setAdapter 之前,然后传递位图数组。
3.2.而getView。有两件事运行良好。但是太慢了...可能是因为调用 URLConnection 的时间..
谁能帮我解决这些问题?我怎样才能加快速度?或者是否有任何其他没有开源的解决方案。
这是我的来源。
现在,3-1。
显示图像
private void showImages(ArrayList<String> imgUrls) {
ArrayList<Bitmap> bitmaps = new ArrayList<>();
for (int i = 0; i < imgUrls.size(); i++) {
try {
String img_path = imgUrls.get(i);
Bitmap bitmap = new UriToBitmapAsyncTask().execute(img_path).get();
bitmaps.add(bitmap);
} catch (Exception e) {
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
CustomAdapter adapter = new CustomAdapter(getApplicationContext(),R.layout.row,bitmaps);
gridView.setAdapter(adapter);
}
这是customAdapter的GetView
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = inflator.inflate(rowLayout, parent, false);
viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.imageView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.imageView.setImageBitmap(bitmaps.get(position));
return convertView;
}
【问题讨论】:
-
您必须通过 Glide 或 Picasso 加载所有图像。为什么要从 URL 获取位图?
-
如何加快速度? - 使用您不想使用的图像加载库之一,而不是在同一线程上按顺序获取所有图像
-
@Rujul Gandhi 我知道图书馆让我很舒服。但这是项目,重要的一个是任何人都没有使用图书馆lile Glide或毕加索..所以这对我来说是个问题..
-
你的项目中添加了 Glide 依赖了吗?
-
@Rujul Gandhi 是的。我添加了毕加索。即使速度很好,也能很好地工作。但我想要的是让项目成为任何图书馆..
标签: android imageloader