응용 프로그램에 이미지를 다운로드하여 UI에 채 웁니다.안드로이드에서 불완전 이미지 다운로드를 처리하는 방법은 무엇입니까?
여기에 &을 다운로드하여 장치의 외부 메모리에 저장하는 코드입니다.
File firstDirectory=new File(Environment.getExternalStorageDirectory()+"/Catalog");
if (firstDirectory.exists()==false)
{
firstDirectory.mkdir();
}
for (int i = 0; i <list.size() && !isCancelled(); i++) {
Content content= list.get(i);
try
{
File firstFile =new File(firstDirectory+"/"+content.getId()+".jpeg");
if (firstFile.exists()==false || firstFile.length()==0)
{
Boolean status=firstFile.createNewFile();
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(kSubURL+content.getPublisherID()+"&tid="+content.getId()+"_370&tp=i");
HttpResponse resp = httpClient.execute(httpGet);
HttpEntity entity= resp.getEntity();
InputStream is = entity.getContent();
FileOutputStream foutS = new FileOutputStream(firstFile);
byte[] buffer = new byte[1024];
long total = 0;
int count;
while ((count = is.read(buffer)) != -1) {
total += count;
foutS.write(buffer, 0, count);
}
foutS.close();
is.close();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
이 코드는 & 이미지를 장치에 다운로드하기 올바르게 작동합니다. 그러나 문제는 이미지가 완전히 다운로드되지 않는 경우입니다. 그런 종류의 사건을 어떻게 다루는가? 응답 코드가 200이지만 이미지가 제대로 다운로드되지 않습니다. 이 경우, 이미지는 사람이 어떻게 제대로 상황을 처리하는 방법 말해 주시겠습니까이
뭔가를 찾고? 응용 프로그램이 예기치 않게 데이터를 쓰는 동안 종료되면 해당 상황을 처리하는 방법을 고려하십시오. 이 경우에도 이미지가 부분적으로 디스크 &에 기록됩니다. 내 이미지가 이미지보기에 제대로로드되지 않습니다.
또한 ImageView에 이미지를 채우는 동안 이미지가 제대로로드되었는지 여부를 확인할 수 있는지 여부를 알려주십시오.
이미지의 자리 표시자를 사용하고 이미지 다운로드가 완료 될 때까지 표시하십시오. – Blackbelt
@blackbelt .. 배경에서이 이미지들을 다운로드 중입니다. 이미지 다운로드가 불완전한 지 프로그램 적으로 알아내는 방법은 무엇입니까? – Bharath
콘텐츠 길이 (서버에 헤더에있는 경우)와 이미지 크기를 비교할 수 있습니다. – Blackbelt