Я пытаюсь отобразить изображения из внутренней памяти 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);
И это занимает слишком много времени, кто-нибудь знает более быстрый способ чтения этих изображений?