毕加索没有加载图像

时间:2014-08-04 07:57:59

标签: android imageview picasso

这是毕加索的代码:

ImageView img = (ImageView)findViewById(R.id.product_image);
    Picasso.with(this)
    .load(_url)
    .fit()
    .into(img, new Callback() {

        @Override
        public void onSuccess() {


        }

        @Override
        public void onError() {


        }
    });

这是_url的值:     http://kiagallery.ir/Images/Upload/Collection%20101/Spring%20101/d4a03b66dc7b46c694615c549b78b2e9.jpg

这是xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView 
    android:id="@+id/product_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<TextView 
    android:id="@+id/product_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="13sp"
    android:layout_below="@id/product_image"/>

<TextView
    android:id="@+id/product_price"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="13sp"
    android:layout_below="@id/product_name"/>
</RelativeLayout>

你可以看到图像可以通过浏览器访问但是毕加索无法加载它,我已经检查了onError函数并且它从未被调用过,我很安静地丢失在这里,任何帮助都将不胜感激。

编辑:当我提供imageview的宽度&amp;高度固定值,如200dp,它加载图像,但当我将其更改为wrap_content时,它不会显示图像。

4 个答案:

答案 0 :(得分:61)

不要忘记为清单添加权限

<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" /> 

答案 1 :(得分:29)

我的猜测是,当fit()的宽度和高度由ImageView定义时,会在毕加索中调用WRAP_CONTENT方法。

此方法等到测量ImageView并调整图像大小以与其大小完全匹配。虽然ImageView的大小由WRAP_CONTENT定义,但方法getMeasuredWidth()getMeasuredHeight()似乎会返回0,这会使您的ImageView 不可见

答案 2 :(得分:2)

如果您使用的是networkPolicy(NetworkPolicy.OFFLINE),则可能无法使用Picasso获取图像。

答案 3 :(得分:0)

我遇到了一个类似的问题,我在全屏ViewPager内放置了DialogFragment张图片。当放置在其他地方时,相同的ViewPager工作得很好,毕加索按预期加载了图像。但只有当放置在全屏DialogFragment时,某些图像才会显示为空白。似乎图像已从服务器成功提取并加载到ImageView,但ImageView仍然显示为空白。

上述答案或类似线程都不适合我。

所以我切换到另一个名为Glide的好图书馆。它与毕加索非常相似。 了解更多herehere。 尽管这可能不是最相关的答案,但对于遇到类似问题的人来说,可能值得一试。