【问题标题】:How to import images from Picasso如何从毕加索导入图像
【发布时间】:2021-02-22 16:32:23
【问题描述】:

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

我的 adapter.java 代码在 .into(imageView) 部分发出错误,如果我点击 alt + enter,他们给我的建议是:创建局部变量 'imageView' 和其他一些变量,但似乎都没有解决问题。

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 导入是个问题。

我还在 android manifest.xml 中包含了&lt;uses-permission android:name="android.permission.INTERNET"/&gt;

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

【问题讨论】:

    标签: java android android-studio import picasso


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      试试这个:

      com.squareup.picasso:picasso:2.5.2

      Picasso.with(context).load(image_url).networkPolicy(NetworkPolicy.NO_CACHE).into(imageView);

      【讨论】:

      • 没有解决这个问题,而且最新的毕加索版本是 2.71828 而不是 2.5.2 但谢谢
      猜你喜欢
      • 2017-08-05
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      相关资源
      最近更新 更多