来自URL Android的位图 [英] Bitmap from URL Android

查看:54
本文介绍了来自URL Android的位图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从URL获取png位图,但此代码中的位图始终为NULL:

I'm trying to get a png Bitmap from URL but the Bitmap is always NULL in with this code:

    private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    ImageView bmImage;
    Activity activity;

    public DownloadImageTask(ImageView bmImage, Activity activity) {
        this.bmImage = bmImage;
        this.activity = activity;
    }

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Log.i("LEGGERE", urldisplay);
        Bitmap mIcon11 = null;
        try {
            URL url = new URL(urldisplay);
            mIcon11 = BitmapFactory.decodeStream(url.openConnection().getInputStream());

            if (null != mIcon11)
                Log.i("BITMAP", "ISONOTNULL");
            else
                Log.i("BITMAP", "ISNULL");
        } catch (Exception e) {
            Log.e("Error", "PORCA VACCA");

        }
        return mIcon11;
    }

    protected void onPostExecute(Bitmap result) {
        bmImage.setImageBitmap(result);
    }
}

然后我在onCreate()中创建一个DownloadImageTask:

And I create a DownloadImageTask in onCreate():

new DownloadImageTask((ImageView) findViewById(R.id.provaaa),this)
            .execute("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png");

我会犯一些错误吗?

推荐答案

我建议使用Thead(异步)来避免出现异常错误:

I suggest to use a Thead (async) to avoid exception errors :

        Thread thread = new Thread(new Runnable(){
            @Override
            public void run() {
                Bitmap thumb;
                // Ur URL
                String link = value.toString();
                try {
                    URL url = new URL(link);
                    thumb = BitmapFactory.decodeStream(url.openConnection().getInputStream());
                   // UI component
                    imageView.setImageBitmap(thumb);

                } catch (Exception e) {
                    Log.e("error message", Objects.requireNonNull(e.getMessage()));
                }
            }
        });
        thread.start();

这篇关于来自URL Android的位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆