メモリ使用量とパフォーマンスの点でこれを行うより効率的な方法はありますか? 次のメソッドは、ビットマップをダウンロードし、進行状況で関数を呼び出します。
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
URLConnection connection = url.openConnection();
connection.connect();
int fileLength = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = input.read(data)) != -1) {
total += count;
if(imageInterface != null) {
imageInterface.duringDownload(
imageView, ((int)total * 100 / fileLength));
}
outputStream.write(data, 0, count);
}
byte[] byteArray = outputStream.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
input.close();
outputStream.flush();
outputStream.close();
return bitmap;