如何从 Picasso 导入图像

How to import images from Picasso

我正在根据 android 开发书籍作为学习者编写应用程序。在书中,作者写了一些被证明是有效的代码,但基于它是在 2015 年编写的,最近 android 文档中的一些功能发生了变化。

我的 adapter.java 代码在 .into(imageView) 部分出现错误,如果我单击 alt + enter,他们给我的建议是:创建局部变量 'imageView',以及其他一些但其中 none 似乎可以解决问题。

Adapter.java 代码如下:

package com.dummies.tasks.adapter;

import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;

import com.dummies.tasks.activity.R;
import com.squareup.picasso.Picasso;

public class TaskListAdapter
extends RecyclerView.Adapter<TaskListAdapter.ViewHolder>
{
static String[] fakeData = new String[] {
"One",
"Two",
"Three",
"Four",
"Five",
"Ah . . . ah . . . ah!"
};

@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int i) {
// create a new view
CardView v = (CardView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_task, parent, false);
// wrap it in a ViewHolder
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
viewHolder.titleView.setText(fakeData[i]);

// set the thumbnail image
Picasso.get().load("http://lorempixel.com/600/400/cats/?fakeId=").into(imageView);
}

@Override
public int getItemCount() {
return fakeData.length;
}

static class ViewHolder extends RecyclerView.ViewHolder { 
CardView cardView;
TextView titleView;
ImageView imageView;

public ViewHolder(CardView card) {
super(card);
cardView = card;
titleView = card.findViewById(R.id.text1);
imageView = card.findViewById(R.id.image);
}
}
}

当我第一次 运行 没有 Picasso 的代码时,它 运行 没有错误,但是从 Picasso 导入是问题。

我还在androidmanifest.xml

中包含了<uses-permission android:name="android.permission.INTERNET"/>

应用完成后应如下所示:https://i.stack.imgur.com/LVSJZ.png

试试这个:

com.squareup.picasso:毕加索:2.5.2

Picasso.with(上下文).load(image_url).networkPolicy(NetworkPolicy.NO_CACHE).into(imageView);

就这样写viewHolder.imageView Picasso.get().load("http://lorempixel.com/600/400/cats/?fakeId=").into(viewHolder.imageView);