在我的Android应用中,我有GridView
使用BaseAdapter
从DynamoDB和S3加载数据以设置每个单元格。
这是我用来从S3获取项目图片的代码:
ExecutorService exec = Executors.newSingleThreadExecutor();
Future<Bitmap> future = exec.submit(new Callable<Bitmap>() {
@Override
public Bitmap call() {
try {
url = new URL(/*S3 url*/);
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (MalformedURLException e) {
Log.e("Malformed", e.getMessage());
} catch (IOException e) {
Log.e("IO", e.getMessage());
}
return bmp;
}
});
try {
holder.itemImage.setImageBitmap(future.get());
} catch (ExecutionException e) {
Log.e("Execution", e.getMessage());
} catch (InterruptedException er) {
Log.e("Interrupted", er.getMessage());
}
代码从S3 Bitmap
获取URL
,并将ImageView
单元格布局上的GridView
设置为S3 URL上的.jpg
文件。问题是从S3获取图像需要很长时间。
有没有办法加速这个过程?也许在开始时编写这段代码并将其加载到那里?