无法使用Picasso 2.5.2从Android设备(API< 20)中的某些网址加载图片

时间:2017-01-24 12:57:28

标签: android url imageview picasso

Picasso通常使用Android(API> 20)加载图片,但问题在于API< 20(无法从URL加载图像)。这是我的代码:

Java代码:

Picasso.with(getActivity()).setLoggingEnabled(true);
Picasso.with(getActivity()).load("https://apod.nasa.gov/apod/image/1701/M78_Tiziano_960.jpg").error(R.drawable.error_logo).memoryPolicy(MemoryPolicy.NO_CACHE).networkPolicy(NetworkPolicy.NO_CACHE).fit().into(img);
StatsSnapshot picassoStats = Picasso.with(getActivity()).getSnapshot();
Log.d("Picasso Stats", picassoStats.toString());

XML代码:

<ImageView
    android:id="@+id/testImg"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    android:layout_gravity="center"
    android:contentDescription="@string/apod_img"
    />

logcat的:

D/Picasso: Main        created      [R0] Request{https://apod.nasa.gov/apod/image/1701/M78_Tiziano_960.jpg resize(1080,900)}
D/Picasso Stats: StatsSnapshot{maxSize=57521883, size=0, cacheHits=0, cacheMisses=0, downloadCount=0, totalDownloadSize=0, averageDownloadSize=0, totalOriginalBitmapSize=0, totalTransformedBitmapSize=0, averageOriginalBitmapSize=0, averageTransformedBitmapSize=0, originalBitmapCount=0, transformedBitmapCount=0, timeStamp=1485260878562}
D/Picasso: Dispatcher  enqueued     [R0]+1ms 
D/Picasso: Hunter      executing    [R0]+2ms 
D/Picasso: Dispatcher  retrying     [R0]+1453ms
D/Picasso: Hunter      executing    [R0]+1453ms 
D/Picasso: Dispatcher  retrying     [R0]+2886ms
D/Picasso: Hunter      executing    [R0]+2887ms
D/Picasso: Dispatcher  batched      [R0]+2888ms for error
D/dalvikvm: GC_FOR_ALLOC freed 601K, 2% free 35220K/35884K, paused 5ms, total 5ms
I/dalvikvm-heap: Grow heap (frag case) to 41.415MB for 7300812-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 5K, 2% free 42344K/43016K, paused 6ms, total 6ms
D/Picasso: Dispatcher  delivered    [R0]+3113ms
D/Picasso: Main        errored      [R0]+3133ms

1 个答案:

答案 0 :(得分:0)

尝试添加:

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

就在

之前
<Application

我想你的getView()

中有以下几行代码
View rowView = mInflater.inflate(..., ..., ...);

ImageView img = (ImageView) rowView.findViewById(R.id.testImg);

Picasso.with(getActivity()).load("https://apod.nasa.gov/apod/image/1701/M78_Tiziano_960.jpg").error(R.drawable.error_logo).memoryPolicy(MemoryPolicy.NO_CACHE).networkPolicy(NetworkPolicy.NO_CACHE).fit().into(img);