我来自服务器的图像变为 NULL

Posted

技术标签:

【中文标题】我来自服务器的图像变为 NULL【英文标题】:My Image from Server becomes NULL 【发布时间】:2017-06-05 16:27:30 【问题描述】:

我正在使用 php 将我的图像上传到 mysql 服务器,并且上传良好。

但是下载的时候问题就来了。我已经测试了我从中下载图像的链接,但在 ImageView 中显示它是一项繁琐的任务。它在 LogCat 窗口中没有显示任何错误。位图变为空(我使用bitmap==null 进行了比较)

我的 DoInBackground 和 OnPostExecute

        @Override
        protected Bitmap doInBackground(String... params) 
            String id = params[0];
            String add = "http://dakshansh.com/mybooks/image/getImage.php?id=" + imageId;
            Log.d("Image","Link = "+add);
            URL url = null;
            Bitmap image = null;
            try 
                url = new URL(add);
                image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
             catch (IOException e) 
                e.printStackTrace();
            
            return image;
        

        @Override
        protected void onPostExecute(Bitmap b) 
            super.onPostExecute(b);
            //loading.dismiss();
            if(b==null)
                Log.d("Image","Image is null");
            
            Log.d("Image","On onPostExecute()");
            image.setImageBitmap(b);
            Log.d("Image", "Image Set");
            new ReadJSONFeedTask1().execute("http://dakshansh.com/mybooks/books/getmybooks.php?posterid="+id);


        

如果您需要,我会发布更多内容。 可以看图here

【问题讨论】:

只是一个友好的建议。使用 Picasso 或 Glide 处理图像。 同意 Anton 的观点,以后会省去很多麻烦。但是,回到主题,您是否在代码中收到 IOException? url.openConnection().getInputStream() 流中有什么内容?你那里有数据吗? 它适用于其他活动。所以我不认为我应该改变 是的@Shark,我没有得到任何异常 【参考方案1】:

使用 glide 会为您节省大量时间

 ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

   Glide.with(this).load("your_url").into(imageView);

更多here

【讨论】:

Glide 是什么。我看不懂github。如果可以的话,给出完整的代码。滑翔变红 将此添加到您的 gradle compile 'com.github.bumptech.glide:glide:3.7.0' ,使用 libaray 的最基本方法是 Glide.with(MyActivity.this).load("your_url").into(your_image_view);

以上是关于我来自服务器的图像变为 NULL的主要内容,如果未能解决你的问题,请参考以下文章

第一次运行时,本机异步会变为null

用户存在值从 asmack 变为空

为啥客户端不能一次又一次地获取输入;它只是在一个输入和一个来自服务器的响应后变为空白?

CMYK 图像使用 TCPDF 变为负片

null,来自服务器的消息:“主机‘myserver’不允许连接到这个 MySQL 服务器”

异步调用后 UserContext 变为 null