그냥 이것도 저를 위한 메모입니다만, 혹시 저같이 초보인 다른 분들이 헤매실까봐 공개로 해 놓습니다.
NO_ASYNC_TASK일때는 상관 없는데(NO_ASYNC_TASK쓸일은 캐시때문이겠지만…),
NO_DOWNLOADED_DRAWABLE이나 CORRET 사용시입니다.
페이스북api같이 프로필 사진등을 리다이렉션 해주는 주소로 줄때 이러한일이 발생하는데요.
ImageDownloader클래스의 Bitmap downloadBitmap(String url) 메서드를 수정해 주시면 됩니다.
Bitmap downloadBitmap(String url) {
final int IO_BUFFER_SIZE = 4 * 1024;// AndroidHttpClient is not allowed to be used from the main thread
final HttpClient client = (mode == Mode.NO_ASYNC_TASK) ? new DefaultHttpClient() :
AndroidHttpClient.newInstance(“Android”);
final HttpGet getRequest = new HttpGet(url);try {
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 301 || statusCode == 302)
{
Header redirect = response.getFirstHeader(“Location”);
if (client instanceof AndroidHttpClient)
((AndroidHttpClient)client).close();
return downloadBitmap(redirect.getValue());
}
if (statusCode != HttpStatus.SC_OK) {
Log.w(“ImageDownloader”, “Error ” + statusCode +
” while retrieving bitmap from ” + url);
return null;
}final HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = null;
try {
inputStream = entity.getContent();
// return BitmapFactory.decodeStream(inputStream);
// Bug on slow connections, fixed in future release.
return BitmapFactory.decodeStream(new FlushedInputStream(inputStream));
} finally {
if (inputStream != null) {
inputStream.close();
}
entity.consumeContent();
}
}
} catch (IOException e) {
getRequest.abort();
Log.w(LOG_TAG, “I/O error while retrieving bitmap from ” + url, e);
} catch (IllegalStateException e) {
getRequest.abort();
Log.w(LOG_TAG, “Incorrect URL: ” + url);
} catch (Exception e) {
getRequest.abort();
Log.w(LOG_TAG, “Error while retrieving bitmap from ” + url, e);
} finally {
if ((client instanceof AndroidHttpClient)) {
((AndroidHttpClient) client).close();
}
}
return null;
}
강조된 부분이 추가된 부분입니다. (Line 12 ~ 18)
저도 잘 모르는지라, 질문하셔도 답은 못할 수 있습니다.
저건 어느나라의 문자들인지 알수가없구만//
응??? 문자 자체는 알파벳인디????
이건 무슨 코드요? 뭐 내가 아는 코드라고 해봐야 XML이나 BASIC 계통이 전부지만서도.
자바?????
실상은 안드로이드용 Dalvik코드라고 해야할려나??
아! redirect문제였네요 ㅎㅎ.
덕분에 해결보았습니다. 감사합니다.
스크랩하겠습니담!
덕분에 문제 해결했습니다. 몇일 고민한게 님글 하나로 해결되었네요 감사합니다~