2014-01-16 2 views
-2

이 코드로 도움을 요청하십시오. URL의 이미지가 표시되지 않습니다.Android - 작동하지 않는 URL에서 이미지로드

또 다른 질문은 "url.openConnection", "getInputStream"과 같은 각 기능을 디버깅하는 방법입니다. 제대로 작동하는지 확인하려면 어떻게해야합니까?

public class MainActivity extends Activity { 

    Bitmap bitmap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     LinearLayout mainLayout = (LinearLayout)findViewById(R.id.mainlayout); 
     // ImageView 
     ImageView imgView = new ImageView(this); 
     mainLayout.addView(imgView); 

     bitmap = loadImage("https://www.google.com.vn/logos/doodles/2014/dian-fosseys-82nd-birthday-5702250374627328-hp.jpg"); 
     imgView.setImageBitmap(bitmap); 


    } 

    public Bitmap loadImage(String src) 
    { 
     try 
     { 
      URL url = new URL(src); 
      HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
      connection.setDoInput(true); 
      connection.connect(); 
      InputStream input = connection.getInputStream(); 
      Bitmap myBitmap = BitmapFactory.decodeStream(input); 
      input.close(); 
      return myBitmap; 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
      return null; 
     } 

    } 

} 
+0

mainlayout의 코드를 추가하십시오 – Arshak92

+2

도 –

+0

메인 레이아웃이있는 LinearLayout 인 이미지 뷰에 대한 레이아웃 매개 변수를 설정해야하고 어떤 구성 요소가없는하시기 바랍니다. 내가 코드 –

답변

2

문제는 메인 스레드에서 네트워크 통신을하고 있으며 그 때문에 확실하게 NetworkOnMainThreadException이 발생하고 있다는 것입니다.

네트워크 호출을 관리하기 위해 AsyncTask를 구현할 수 있지만 네트워킹 가능한 이미지 라이브러리를 사용하여 모든 불만 사항을 해결하는 것이 좋습니다.

https://github.com/nostra13/Android-Universal-Image-Loader

+0

에서 만든이 http://www.youtube.com/watch?v=KmYJBhz1gmk에서이 코드를 사용하면, 나는 그를 주 스레드에서 사용하는 것을 볼 수있다 .... –

+0

아니, 어떤 NetworkOnMainThreadException도 실행되지 않는다. 잘하지만 어떤 이미지도 보여주지 않습니다! –

+0

'loadImage (...) '메소드를 실행하기 전에 문제가 발생하면, 스택 추적을 점검하여 잘못된 점을 확인하십시오. 그럼에도 불구하고 메인 UI 스레드에서 호출하는 경우 connection.connect();에 대해 NetworkOnMainThreadException을 실행해야합니다. – Yjay

0

아마 좋은 생각이 아니라 모든 핵심적으로 껄끄 러운 물건을 직접하는 것보다 ImageLoader 라이브러리를 선택 주셔서 감사합니다. 최적화되지 않았고 오류도 발생하기 쉽습니다.

관련 문제