1

I have a problem to display this image in my internet. I have no idea how to make it work. I am new to android.

The problem is that part ...

imView = (ImageView) findViewById(R.id.imageView1); 
imView.setImageBitmap(bm); //error

Thank you.

my code

public class CarregaImagem extends AsyncTask<String, Void, String>{
    String imageUrl = "http://www.cuboweb.com.br/android/images/logoconsulfarma.png";
    private ProgressDialog progress;
    private Activity activity;
    Bitmap bmImg;

    public CarregaImagem(Activity activity){
        this.activity = activity;
    }

    protected void onPreExecute() {
        progress = new ProgressDialog(activity);
        progress.setTitle("Aguarde...");
        progress.setMessage("Carregando..."); 
        progress.show();    
    }

    protected String doInBackground(String... params) { 
        // TODO Auto-generated method stub
        try { 
            URL aURL = new URL(imageUrl);
            final URLConnection conn = aURL.openConnection(); 
            conn.connect();
            final BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
            final Bitmap bm = BitmapFactory.decodeStream(bis);
            BitmapFactory.decodeStream(new URL(imageUrl).openConnection().getInputStream()); 
            bis.close();
        } catch (IOException e) { 
            imageUrl = "";
        } catch(Exception f){
            imageUrl = "";
        }
        return imageUrl;        
    }

    protected void onPostExecute(String imageUrl) {

        if(!imageUrl.equals("")){
            imView = (ImageView) findViewById(R.id.imageView1); 
            imView.setImageBitmap(bm); //error 
        } else{
            Toast.makeText(activity, "Não foi possível obter resultados", Toast.LENGTH_LONG).show();
        }           
        progress.dismiss();         
    }   
}
Dipak Keshariya
  • 22,193
  • 18
  • 76
  • 128
Flip_novidade
  • 11
  • 1
  • 8

3 Answers3

2

You create a bitmap in doInBackground that you never use. Return instead the bitmap and use it in onPostExecute.

Olivier C
  • 1,151
  • 10
  • 11
  • in doInBackground: return BitmapFactory.decodeStream(new URL(url).openConnection().getInputStream()); in onPostExecute: imView.setImageBitmap(result); – Olivier C Oct 26 '12 at 11:33
1

Try below code to download image from web and display in imageview.

public class MainActivity extends Activity {

    ImageView mImgView1;
    static Bitmap bm;
    ProgressDialog pd;
    String imageUrl = "https://www.morroccomethod.com/components/com_virtuemart/shop_image/category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg";
    BitmapFactory.Options bmOptions;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mImgView1 = (ImageView) findViewById(R.id.mImgView1);
        pd = ProgressDialog.show(MainActivity.this, "Aguarde...",
                "Carregando...");
        new ImageDownload().execute("");
    }

    public class ImageDownload extends AsyncTask<String, Void, String> {

        protected String doInBackground(String... params) {
            // TODO Auto-generated method stub
            bmOptions = new BitmapFactory.Options();
            bmOptions.inSampleSize = 1;
            loadBitmap(imageUrl, bmOptions);
            return imageUrl;
        }

        protected void onPostExecute(String imageUrl) {
            pd.dismiss();
            if (!imageUrl.equals("")) {
                mImgView1.setImageBitmap(bm);
            } else {
                Toast.makeText(MainActivity.this,
                        "Não foi possível obter resultados", Toast.LENGTH_LONG)
                        .show();
            }
        }

    }

    public static Bitmap loadBitmap(String URL, BitmapFactory.Options options) {
        InputStream in = null;
        try {
            in = OpenHttpConnection(URL);
            bm = BitmapFactory.decodeStream(in, null, options);
            in.close();
        } catch (IOException e1) {
        }
        return bm;
    }

    private static InputStream OpenHttpConnection(String strURL)
            throws IOException {
        InputStream inputStream = null;
        URL url = new URL(strURL);
        URLConnection conn = url.openConnection();

        try {
            HttpURLConnection httpConn = (HttpURLConnection) conn;
            httpConn.setRequestMethod("GET");
            httpConn.connect();

            if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                inputStream = httpConn.getInputStream();
            }
        } catch (Exception ex) {
        }
        return inputStream;
    }
}
Dipak Keshariya
  • 22,193
  • 18
  • 76
  • 128
0

hey i faced the same problem for showing image from url, this link was very useful. also u can refer to stackoverflow discussion

Apparently android 3 onwards network connectivity is strict hence network connection fails

Cheers!

Community
  • 1
  • 1
priyanka_rao
  • 465
  • 1
  • 4
  • 20