낭만 프로그래머

Android 에서 ImageView에 url을 사용하여 이미지 보여주기 본문

Android

Android 에서 ImageView에 url을 사용하여 이미지 보여주기

조영래 2019. 3. 28. 12:31

Android에서는 메인 쓰레드는 UI 관련하기 때문에 네트워크 관련한 작업을 할 수 없다. 때문에 별도의 쓰레드에서 작업을 해야 한다


private class DrawUrlImageTask extends AsyncTask<String, Void, Bitmap> {

    ImageView ivSample;

    public DrawUrlImageTask(ImageView ivSample) {
        this.ivSample = ivSample;
    }

    protected Bitmap doInBackground(String... urls) {
        String url = urls[0];
        Bitmap bitmap = null;
        InputStream in = null;

        try {
            in = new java.net.URL(url).openStream();
            bitmap = BitmapFactory.decodeStream(in);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            try {
                in.close();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }

        return bitmap;
    }

    protected void onPostExecute(Bitmap bitmap) {
        ivSample.setImageBitmap(bitmap);
    }
}


onCreate 메소드와 같이 필요한 곳에 Task를 수행


new DrawUrlImageTask((ImageView) findViewById(R.id.ivSample))
        .execute("http://localhost:8080/image/sample.png");