我正在尝试使用RecylerView
谷歌最近推出的。我在那里有一组行,现在是 7-8 行,每一行都有一个我从服务器获取的图像。为此,我正在使用 Picasso 库,但这对我不起作用。我不确定我是否遗漏了什么或配置了什么。
屏幕正确显示每一行的默认图像,但不会从服务器下载图像,如果服务器响应缓慢,我会等待超过 5 分钟,但事实并非如此。
代码
public DemoRecyclerAdapter(List<DemoRowModel> items, int itemLayout, final Context mContext) {
this.items = items;
this.itemLayout = itemLayout;
this.mContext = mContext;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(itemLayout, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
DemoRowModel item = items.get(position);
holder.mDemoNameTextView.setText(item.getDemoName());
holder.mDemoDateTextView.setText(item.getDemoDate());
Target mTarget = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) {
holder.mImageView.setImageBitmap(bitmap);
}
@Override
public void onBitmapFailed(Drawable drawable) {
Logger.d(TAG, "Failed! Bitmap could not downloaded.");
}
@Override
public void onPrepareLoad(Drawable drawable) {
}
};
Picasso.Builder builder = new Picasso.Builder(mContext);
Picasso picasso = builder.downloader(new OkHttpDownloader(mContext) {
@Override
protected HttpURLConnection openConnection(Uri uri) throws IOException {
HttpURLConnection connection = super.openConnection(uri);
// fetch the auth value
SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext.getApplicationContext());
connection.setRequestProperty(Constant.HEADER_X_API_KEY, mSharedPreferences.getString(SharedPreferenceKeys.JSESSIONID, ""));
return connection;
}
}).build();
picasso.load(item.getImagePath()).into(mTarget);
// here set the value
holder.itemView.setTag(item);
}
提前致谢。