【发布时间】:2012-02-02 20:56:09
【问题描述】:
我正在尝试显示来自 android 内部存储的图像,我只有 4 张图像(这些图像是之前拍摄的屏幕截图),我在 GridView 中显示这些图像,它可以工作,但是需要太多时间,这是我的代码:
FileInputStream fis = null;
DataOutputStream outWriter = null;
ByteArrayOutputStream bufStream = null;
String imageFile;
int occurence;
for (int i=0; i<4; i++) {
try {
occurence = i+1;
imageFile = "preview"+occurence+".png";
fis = openFileInput(imageFile);
bufStream = new ByteArrayOutputStream();
outWriter = new DataOutputStream(bufStream);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int ch;
byte[] data = null;
try {
**while((ch = fis.read()) != -1)
outWriter.write(ch);**
outWriter.close();
data = bufStream.toByteArray();
bufStream.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
favorPreviews.add(BitmapFactory.decodeByteArray(data, 0, data.length)) ;
}
如您所见,我正在使用 FileInputStream 读取它们,但在此循环中逐字节读取文件:
while((ch = fis.read()) != -1)
outWriter.write(ch);
而且这需要太多时间,有谁知道读取这些图像的更快方法吗?
【问题讨论】: