【发布时间】:2016-06-24 13:54:44
【问题描述】:
在我的项目中,我将我的可绘制图像存储在这样的数组中
int[] mLocIds = new int[]{R.mipmap.ic_sticker_01, R.mipmap.ic_sticker_02, R.mipmap.ic_sticker_03,
R.mipmap.ic_sticker_04, R.mipmap.ic_sticker_05, R.mipmap.ic_sticker_06, R.mipmap.ic_sticker_07,
R.mipmap.ic_sticker_08};
这是我的数组:
List<StickerView> mStickers = new ArrayList<>();
但我想显示来自 url 的图像(在数据库中获取 url),但我的 GalleryAdapter 允许 int 数组:
public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.ViewHolder> implements View.OnClickListener {
private int[] mResIds;
private int[] mLocIds;
public GalleryAdapter(int[] resIds) {
this.mResIds = resIds;
}
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
public interface OnRecyclerViewItemClickListener {
void onItemClick(View view, int resId);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_gallery, viewGroup, false);
ViewHolder vh = new ViewHolder(view);
view.setOnClickListener(this);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
viewHolder.imageView.setImageResource(mResIds[position]);
viewHolder.itemView.setTag(mResIds[position]);
}
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(v, (Integer) v.getTag());
}
}
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
this.mOnItemClickListener = listener;
}
@Override
public int getItemCount() {
return mResIds.length;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
public ViewHolder(View view) {
super(view);
imageView = (ImageView) view.findViewById(R.id.item_sticker);
}
}
public void setData(int[] mLocIds) {
this.mResIds = mLocIds;
notifyDataSetChanged();
}
public void setDataStandart(int[] mResIds) {
this.mResIds = mResIds;
notifyDataSetChanged();
}
}
我找到了这个解决方案,但不清楚如何使用它:
public void setBitmaps(Bitmap... bitmaps) {
for (int i = 0; i < mImageViews.length; i++) {
mImageViews[i].setImageBitmap(bitmaps[i]);
}
}
我知道,我将更新我的活动并首先下载位图,然后将位图存储在数组中,但我该怎么做呢? 感谢您的帮助。
【问题讨论】:
标签: android arrays android-arrayadapter