마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹서버 이미지 수신해서 다이알로그에 띄우기

0 추천

웹서버에서 이미지 수신해서 다이알로그에 띄우기인데요

일반 엑티비티에 띄우면 잘 되는데

다이알로그에 띄우려니까 nullpointer 에러가 나서 종료가 되네요. 

이거 왜이럴까요..?

 

 

Bitmap imgBitmap;
public void imageLoader(){
Thread u1 = new Thread(){
public void run(){
 
imgBitmap = GetImageFromURL("http://www.주소.com/IMG_3601.JPG");
 
final int i = 1;
handler1.sendEmptyMessage(i);
}
};
u1.start();
}
 
Handler handler1 = new Handler(){
 
public void handleMessage(Message msg){
if (imgBitmap != null)
    {
    ImageView imgView = (ImageView)findViewById(R.id.imageView1);
    imgView.setImageBitmap(imgBitmap);
    }
};
 
};
 
private Bitmap GetImageFromURL(String strImageURL) 
    {
        Bitmap imgBitmap = null;
        
        try
        {
        URL url = new URL(strImageURL);
        URLConnection conn = url.openConnection();
        conn.connect();
       
        int nSize = conn.getContentLength();
        BufferedInputStream bis = new BufferedInputStream(conn.getInputStream(), nSize);
        imgBitmap = BitmapFactory.decodeStream(bis);
       
        bis.close();
        }
        catch (Exception e)
        {
        e.printStackTrace();
        }
        
        return imgBitmap;
    }
우오오옹 (340 포인트) 님이 2013년 2월 19일 질문

2개의 답변

0 추천
그렇게하지 마시고

WebView wb=new WebView(context);

wb.loadUrl("이미지를 포함한 사이트(서버 만드세요)");

 

new AlertDialog(context).setView(wb).show();

 

이렇게 하시면 되요

오토캐싱일껍니다
수상한i (8,050 포인트) 님이 2013년 2월 19일 답변
웹뷰로 해야겠군요! 감사합니다!!
0 추천

ImageView imgView = (ImageView)findViewById(R.id.imageView1);

제 생각에는 요게 다이얼로그 안에 있는 이미지뷰일것 같은데요.

ImageView imgView = (ImageView) 다이얼로그변수명.findViewById(R.id.imageView1);

이렇게 해 주셔야 제대로 생성됩니다. NullPointerExcepion이 나는 이유는 액티비티의 ContentView 안에 해당 뷰가 없는데, 없는 뷰의 기능을 사용하려고 했기 때문입니다.

퐁풍 (8,740 포인트) 님이 2013년 2월 20일 답변
감사합니다!! 덕분에 해결했습니다!
...