如何从 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);
我正在根据 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);