ArrayList<Bitmap> thumbImg = new ArrayList<Bitmap>();
...중략....
for (int i = oldArrSize; i < listImg.size(); i++) {
try {
url = new URL("listImg.get(i).toString());
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeStream(url.openStream(),
null, options);
thumbImg.add(bitmap);
bitmap = null;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
웹에서 이미지 리스트(listImg) 를 가져와 비트맵으로 저장(thumbImg<Bitmap>)하고 있습니다.
웹에서 가끔 큰 이미지가 오면...메모리 문제때문에 simplesize를 했습니다..
그런데... 속도가 엄청 느립니다.
한개의 URL을 가져와 디코드 하는 것을 반복하기 때문이라 생각합니다.
그런데.. 저렇게 하는게 맞지 않나요???
위의 방법보다 더 나은 방법이 있을까요???
고수님들 부탁 드립니다.. 좀더 나은 방법을.....
@ 어흥이아빠
핫~! 그렇군요.. 그 두줄만 빼도 그나마 빨라졌습니다. 감사합니다.
그리고 Images.Media.getBitmap(getContentResolver(), uri) 은URI로 불러 올때 사용가능하군요.. 저는 URL에서 불러오기에..
적용을 못했습니다.
아무튼 잘못된 부분 직적을 감사 합니다.
제가 회사라 테스트는 못 해보는데..
Bitmap bitmap = Images.Media.getBitmap(getContentResolver(), Uri.parse(url.toURI().toString())) ;
이렇게 한 번 해 보시겠어요?
@ 어흥이아빠
알려주신 방법으로 해보니... 실행은 되는데... FileNotFoundException이 발생하네요...
URL주소의 사진은 있는데... 그 URL을 읽을때 exception이 발생을....
java.io.fileNotfoundException: No content provider : http://test.com/asdf.jpg




이미지 관련해서는 잘 몰라서 코멘트를 적을 순 없구요..
for문에 관련해서 적는다면..
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
options 부분은 변하는 값이 아니기 때문에 for문 밖에 선언하는게 좋을 듯 합니다.
Images.Media.getBitmap(getContentResolver(), uri) 이 놈을 사용해 보시죠..