从路径生成位图列表以将其绘制在画布上很慢

问题描述

我已经在智能手机上存储了png列表:

image001.png,image002.png,...,image175.png,而每个图像为200-250KB。

我想在画布上画它们。因此,我想我需要将它们转换为位图,以便使用它们的路径:当有175张图像时,BitmapFactory.decodeFile会变慢。我试图将inSampleSize设置为2并且仍然很慢(大约需要4秒)。

File[] files = myFolder.listFiles();

List<File> directoryListing = new ArrayList<>();
directoryListing.addAll(Arrays.asList(files));

long start = System.currentTimeMillis();
for (int i = 0; i < directoryListing.size(); i++) {
    String path = directoryListing.get(i).getPath();

    BitmapFactory.Options opts = new BitmapFactory.Options();
    opts.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(path,opts);
    opts.inJustDecodeBounds = false;
    opts.inSampleSize = 1;

    Bitmap bmp = BitmapFactory.decodeFile(path,opts);

    listBitmaps.add(bmp);
}

任何想法如何使listBitmap生成更快?我的意思是甚至不到1秒。

请注意,如果不可能的话,列表中的第一张图纸应该不会很快,但我希望下一张图纸会很快(即使我关闭应用程序并再次打开它)

另一件事:png是从webm提取的,并且具有alpha。 (画布不知道绘制webm)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...