Android 如何将图像添加到AdapterClass中的RecyclerView?
下面是产品bean类 所以我的循环视图可以工作,但这行代码没有工作。这是我的适配器类中的代码Android 如何将图像添加到AdapterClass中的RecyclerView?,android,android-studio,android-recyclerview,Android,Android Studio,Android Recyclerview,下面是产品bean类 所以我的循环视图可以工作,但这行代码没有工作。这是我的适配器类中的代码 holder.imageView.setImageDrawable(mCtx.getResources().getDrawable(product.getImage())); 阶级 如果产品对象中的图像包含可绘图软件包中的图像资源,则需要使用 holder.imageView.setImageResource(product.getImage()); 试试这个: 如果您获取数据表单api,请按如下方
holder.imageView.setImageDrawable(mCtx.getResources().getDrawable(product.getImage()));
阶级
如果产品对象中的图像包含可绘图软件包中的图像资源,则需要使用
holder.imageView.setImageResource(product.getImage());
试试这个:
如果您获取数据表单api,请按如下方式设置图像
RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.drawable.avatar1)
.error(R.drawable.avatar1)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.priority(Priority.HIGH)
.dontAnimate()
.dontTransform();
Glide.with(context)
.load(UpcomingHistoryList.get(position).getPhotoUrl())
.apply(options)
.into(holder.img);
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageResource(R.drawable.hello);
您可以使用glide和毕加索
如果获得图像表单可绘制,请按如下方式设置图像
RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.drawable.avatar1)
.error(R.drawable.avatar1)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.priority(Priority.HIGH)
.dontAnimate()
.dontTransform();
Glide.with(context)
.load(UpcomingHistoryList.get(position).getPhotoUrl())
.apply(options)
.into(holder.img);
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageResource(R.drawable.hello);
我认为如果您得到产品对象的字符串,您应该尝试将该字符串转换为Uri或位图,这样当您在imageview中进行设置时,就可以显示,如果您显示产品类以了解返回产品的值的类型,这将非常有帮助;
Uri.parse(product.getImage())代码>我使用一种方法加载可绘制文件,它们是矢量isset
public static BitmapDescriptor getBitmapFromVector(@NonNull Context context,
@DrawableRes int vectorResourceId,
@ColorInt int tintColor) {
Drawable vectorDrawable = ResourcesCompat.getDrawable(
context.getResources(), vectorResourceId, null);
if (vectorDrawable == null) {
String TAG = "tag";
Log.e(TAG, "Requested vector resource was not found");
return BitmapDescriptorFactory.defaultMarker();
}
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
DrawableCompat.setTint(vectorDrawable, tintColor);
vectorDrawable.draw(canvas);
return BitmapDescriptorFactory.fromBitmap(bitmap);
}
之后,它只保留imageview.setImageBitmap(Bitmapdescriptor(parameters);通过读取注释,看起来产品对象将图像存储为字符串。getImage()方法必须返回int
在产品中声明图像(带有一些默认图像),如下所示:
private int image = R.drawable.default_image;
吸气剂的外观如下所示
public int getImage() {
return image;
}
//产品的对象类
类产品{
公共产品(字符串标题、字符串简短描述、双重评级、双重价格、整数图像){
this.title=标题;
this.short\u description=short\u description;
这个。评级=评级;
这个价格=价格;
这个图像=图像;
}
字符串标题;
字符串简短描述;
双重评级;
双倍价格;
int图像;
}
//阵列产品列表
List productList=new ArrayList();
产品列表。添加(新产品(“标题1”,“简短描述1”,4,50,R.drawable.ic_thumb_down”);
产品列表。添加(新产品(“标题2”,“简短描述2”,3100,R.drawable.ic_thumb_down”);
产品列表。添加(新产品(“标题3”,“简短描述3”,4150,R.drawable.ic_thumb_down”);
//适配器
公共类ImageAdapter扩展了RecyclerView.Adapter{
列表资源列表;
公共图像适配器(列表资源列表){
this.resourceList=resourceList;
}
@非空
@凌驾
public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
返回新的ImageViewHolder(layoutFlater.from(viewGroup.getContext())。充气(R.layout.row_图像,viewGroup,false));
}
@凌驾
public void onBindViewHolder(@NonNull ImageViewHolder ImageViewHolder,int i){
产品=产品列表。获取(i);
imageViewHolder.imageView.setImageResource(product.image);
//在这里,您还可以使用其他字段,如标题、说明等。。。
}
@凌驾
public int getItemCount(){
返回resourceList.size();
}
类ImageViewHolder扩展了RecyclerView.ViewHolder{
图像视图图像视图;
公共ImageViewHolder(@NonNull View itemView){
超级(项目视图);
imageView=itemView.findViewById(R.id.imageView3);
}
}
}
尝试使用:
holder.imageView.setImageDrawable(ContextCompact.getDrawable(ctxt, R.drawable.YOUR_RESOURCE_IMAGE));
如果product.getimage()返回的资源id为R.drwable.your_resource_IMAGE
尝试使用:
holder.imageView.setImageDrawable(ContextCompact.getDrawable(ctxt, product.getimage()));
什么是product.getImage()
?公共产品(int-id、字符串标题、字符串简短描述、双重评级、双重价格、int-image){this.id=id;this.title=title;this.short\u description=short\u description;this.rating=rating;this.price=price;this.image=image;public int getImage(){return image;}很抱歉使用它的外观,我可以在这里发送图像吗?我可以在twitter上发送图像吗?好的,你如何设置产品
?具体来说,你如何在产品
中设置图像?所有文件都是txt格式的。你可以看看这些类和布局吗?问题是当我删除holder.imageView.setImageDrawable时(mCtx.getResources().getDrawable(product.getImage()));列表显示,但当我将其添加到适配器类时,整个应用程序不会运行,但您想显示手机的已加载图像还是可绘制文件夹?好的,但您想显示手机的已加载图像或可绘制文件夹?您能发送错误的屏幕截图吗?我想这将是一个来自drawable folderok,使用gradle.app中的git库…….实现'com.github.bumptech.glide:glide:3.7.0'luego glide.with(context).将(//produc.getimage.fitCenter().centerCrop()加载到(holder.imageview);我可以将数组中的Int替换为Product吗?我的类是。您可以将任何对象用于数组。@D-TECK更新答案。根据需要使用产品数组。