如何减少花费的时间比获得位图

时间:2018-08-06 18:39:49

标签: android performance bitmap storage

我在Android和iOS上有一个项目,其中有一个部分显示了汽车的360度视图,在iOS中,我只是从内部存储中获取了60幅图像,这些图像以前是从互联网上下载的,并且当用户开始向右或向左滑动汽车时。而且此过程仅需要200毫秒即可准备好与用户进行交互。

但是在Android中,我必须先拍摄60张图像并将其转换为位图,然后该过程类似于iOS过程。尽管如此,将第一个过程全部转换为位图大约需要3秒或更长时间。我已经阅读了在许多信息源中显示Android图像的过程,并且似乎有必要为此任务使用位图,这样可以减少获取所有位图的时间吗?还是可以保存位图以避免转换当用户再次打开相同的视图时,PNG文件再次转换为新的位图?

我用来将png文件转换为位图对象的代码与Android开发人员文档建议的代码相同:

https://developer.android.com/topic/performance/graphics/load-bitmap

我获取位图的源代码是:

   public static Bitmap decodeSampledBitmapFromFile(String filePath, int reqWidth, int reqHeight) {
    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(filePath, options);
    options.inSampleSize = 1;
    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;
    Bitmap bitmap =BitmapFactory.decodeFile(filePath, options);
    Log.d("img360","bitmap res "+bitmap.getWidth()+ " h "+bitmap.getHeight());
    return bitmap;
}

非常感谢您的帮助和支持。

1 个答案:

答案 0 :(得分:-1)

如果要从Internet下载图像并将其显示在android上 只需放置一个imageview并使用picaso或glide库 更快,更容易