2016-06-03 4 views
-3

Android 프로그래밍을 배우고 있는데 실수였습니다.이미지 다운로드 URL

ImageView im = (ImageView) findViewById(R.id.imageView); 
try { 
    URL u = new URL("http"); 
    HttpURLConnection ur = (HttpURLConnection) u.openConnection(); 
    InputStream in = ur.getInputStream(); 
    Bitmap bs = BitmapFactory.decodeStream(in); 

    im.setImageBitmap(bs); 

    in.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

LogCat을 사용하여 충돌과 관련된 Java 스택 추적을 검사하십시오. https://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-this. 대부분의 경우, 'NetworkOnMainThreadException'을 사용하여 충돌하는 것을 발견 할 수 있습니다 : http://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmiththreadexception – CommonsWare

+0

http://stackoverflow.com/a/ 3090802/5915572 –

답변

0
당신은 단지 새로운 스레드를 사용하여 주 스레드에서 실행할 수 없습니다

:

Thread thread = new Thread(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     try 
     { 
      //Your code goes here 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
}); 

thread.start(); 
0

당신이에 대한 Picasso library를 검색 했습니까?

피카소를 사용하면보기 (예 : ImageView)의 이미지 요청에서 비트 맵을 바인딩 할 수 있습니다. 그것이 어떻게 작동하는지 상관 없습니다.

Picasso.with(context) 
     .load(imageUri) 
     .into(viewToAttach); 

콜백을 사용하여 시간 초과 또는 오류 응답과 같은 오류를 포착 할 수 있습니다.

+0

예이 라이브러리를 알고 있지만 코드를 사용하고 싶습니다. 감사합니다. –