[英]How to show images using recycle view and picasso in android/ java?
我無法將從網站收集的圖像顯示到回收視圖中。 我首先使用jsoup獲得了圖像URL。 然后,將URL添加到名為imgURLS的列表中。 現在,我想在具有回收視圖的gridview中顯示這些圖像。 我沒有錯誤的代碼,但是當我運行我的android項目時圖像沒有顯示。 它只是空白。 這是我的一些代碼
MAINACTIVITY.JAVA
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new URLcollector().execute();
imageView = findViewById(R.id.imageView);
//setBKG = findViewById(R.id.setBKG);
rvMain = findViewById(R.id.rvMain);
// can add another parameter here like text
MyAdapter adapter = new MyAdapter(imgURLS);
rvMain.setLayoutManager(new GridLayoutManager(MainActivity.this, 2));
rvMain.setAdapter(adapter);
}
然后仍然在mainactivity.java中
public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
// String[] companyList;
List<String> logoList;
ImageView currentView;
Bitmap imgBitmaps;
public MyAdapter( List<String> logoList) {
// this.companyList = companyList;
this.logoList = logoList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item, parent, false);
MyViewHolder viewHolder = new MyViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
// load image from picasso and then
Context context = holder.logo.getContext(); //<----- Add this line
Picasso.with(context).load(imgURLS.get(position)).into(holder.logo);
}
@Override
public int getItemCount() {
return logoList.size();
}
}
我的問題是
1)我是否正確使用畢加索?
2)為什么我看不到圖像(請注意xml中的可見標記)?
讓我知道是否需要提供更多代碼。
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
// load image from picasso and then pass it to set Image
Picasso.with(MainActivity.this)
.load(logoList.get(position))
.placeholder(R.mipmap.ic_launcher) // optional
.error(R.mipmap.ic_launcher) //if error
.into(holder.logo);
holder.logo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "This is: " , Toast.LENGTH_SHORT).show();
}
});
// holder.name.setText(companyList[position]);
}
如果您的網址正確。 嘗試這樣的事情,不要忘記在清單中設置INTERNT權限。
<uses-permission android:name="android.permission.INTERNET"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.