看看这两种方法:
//one long single function
public Bitmap getBitmap(Context context, String AssetsFileName) throws IOException {
return BitmapFactory.decodeStream(context.getAssets().open(AssetsFileName));
}
//separate functions
public Bitmap getBitmap(Context context, String AssetsFileName) throws IOException {
AssetManager assetManager = context.getAssets();
InputStream inputStream = assetManager.open(AssetsFileName);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
哪一个更快或者它们运行速度相同?
第二个问题是更多的对象会降低应用程序的速度还是更好?
答案 0 :(得分:0)
使用这样的速度提升真的没有意义,即使其中一个变体可以更好地工作 - 差异应该是最小的。如果你想加速你的程序 - 改变另一部分。例如,解码jpg图像通常比解码png更快。
答案 1 :(得分:0)
使用Picasso代替,它为您提供了在内存中缓存图像的强大功能。要在不使用文件时始终解码文件。 你可以配置Picasso它可以占用多少内存,即最大值。
您可以使用某些Map对象实际执行此操作,但是当您的应用程序内存消耗过大时,您必须考虑在使用后释放Bitmap。毕加索为你做这件事。
这实际上不是直接问题的答案,但它可以为您提供一些如何在您的应用中处理位图的提示。