Android的SkImageDe codeR ::厂返回null错误 [英] Android SkImageDecoder::Factory returned null Error

查看:137
本文介绍了Android的SkImageDe codeR ::厂返回null错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从URL加载图像的ImageView的,但出现错误: SkImageDe codeR ::厂返回null。我该如何解决这个问题?

这是我的code:

 私有类LoadImageFromURL扩展的AsyncTask<字符串,太虚,位图> {
        ImageView的bitmapImgView;
        公共LoadImageFromURL(ImageView的bmImgView){
            bitmapImgView = bmImgView;
        }

        @覆盖
        受保护的位图doInBackground(字符串... PARAMS){
            // TODO自动生成方法存根
            串urlStr = PARAMS [0];
            位图IMG = NULL;
            尝试 {
                网址URL =新的URL(urlStr);
                InputStream中的InputStream = url.openConnection()的getInputStream()。
                //选项bmFactoryOpt =新的选项();
                //bmFactoryOpt.inJustDe$c$cBounds = FALSE;
                IMG = BitmapFactory.de codeStream(InputStream的);
            }赶上(MalformedURLException异常E){
                // TODO自动生成的catch块
                e.printStackTrace();
            }赶上(IOException异常E){
                // TODO自动生成的catch块
                e.printStackTrace();
            }
            返回IMG;
        }

        @覆盖
        保护无效onPostExecute(位图位图){
            bitmapImgView.setImageBitmap(位);
        }
    }
 

解决方案

解决。更改code到这一点。

  @覆盖
        受保护的位图doInBackground(字符串... PARAMS){
            // TODO自动生成方法存根
            串urlStr = PARAMS [0];
            位图IMG = NULL;

            HttpClient的客户端=新DefaultHttpClient();
            HTTPGET请求=新HTTPGET(urlStr);
            HTT presponse响应;
            尝试 {
                响应=(Htt的presponse)client.execute(要求);
                HttpEntity实体= response.getEntity();
                BufferedHttpEntity bufferedEntity =新BufferedHttpEntity(实体);
                InputStream中的InputStream = bufferedEntity.getContent();
                IMG = BitmapFactory.de codeStream(InputStream的);
            }赶上(ClientProtocolException E){
                // TODO自动生成的catch块
                e.printStackTrace();
            }赶上(IOException异常E){
                // TODO自动生成的catch块
                e.printStackTrace();
            }
            返回IMG;
        }
 

I'm trying to load an image from URL to an ImageView but the error occurs: SkImageDecoder::Factory returned null. How can I fix it?

here is my code :

private class LoadImageFromURL extends AsyncTask<String, Void, Bitmap>{
        ImageView bitmapImgView;
        public LoadImageFromURL(ImageView bmImgView){
            bitmapImgView = bmImgView;
        }

        @Override
        protected Bitmap doInBackground(String... params) {
            // TODO Auto-generated method stub
            String urlStr = params[0];
            Bitmap img = null;
            try {
                URL url = new URL(urlStr);
                InputStream inputStream = url.openConnection().getInputStream();
                //Options bmFactoryOpt = new Options();
                //bmFactoryOpt.inJustDecodeBounds = false;
                img = BitmapFactory.decodeStream(inputStream);          
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }       
            return img;
        }

        @Override
        protected void onPostExecute(Bitmap bitmap){
            bitmapImgView.setImageBitmap(bitmap);
        }
    }

解决方案

Solved. Change the code to this.

@Override
        protected Bitmap doInBackground(String... params) {
            // TODO Auto-generated method stub
            String urlStr = params[0];
            Bitmap img = null;

            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet(urlStr);
            HttpResponse response;
            try {
                response = (HttpResponse)client.execute(request);           
                HttpEntity entity = response.getEntity();
                BufferedHttpEntity bufferedEntity = new BufferedHttpEntity(entity);
                InputStream inputStream = bufferedEntity.getContent();
                img = BitmapFactory.decodeStream(inputStream);
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return img;
        }

这篇关于Android的SkImageDe codeR ::厂返回null错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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