Java 在ViewAdapter上加载图像资源
我有一个RecicleView,它使用一个名为SimpleItemRecycleServiceAdapter的适配器。ReciclerView中的每个项目都位于项目的可绘制文件夹中。我能够在两个TextView上设置测试,但我不确定如何对图像执行此操作。这是我得到的输出。。。图像应该显示在带有ImageView小部件的黑色方框上 以下是我的适配器的代码:Java 在ViewAdapter上加载图像资源,java,android,android-imageview,android-adapterview,Java,Android,Android Imageview,Android Adapterview,我有一个RecicleView,它使用一个名为SimpleItemRecycleServiceAdapter的适配器。ReciclerView中的每个项目都位于项目的可绘制文件夹中。我能够在两个TextView上设置测试,但我不确定如何对图像执行此操作。这是我得到的输出。。。图像应该显示在带有ImageView小部件的黑色方框上 以下是我的适配器的代码: package uk.co.example.calculator.adapters; import android.support.v7.w
package uk.co.example.calculator.adapters;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import uk.co.example.calculator.R;
import uk.co.example.calculator.ui.activities.Currency;
public class SimpleItemRecyclerViewAdapter extends RecyclerView.Adapter<SimpleItemRecyclerViewAdapter.RecyclerViewSimpleTextViewHolder> {
// The items to display in your RecyclerView
private List<Currency> items;
// Provide a suitable constructor (depends on the kind of dataset)
public SimpleItemRecyclerViewAdapter(List<Currency> items) {
this.items = items;
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return this.items.size();
}
// Replace the contents of a view (invoked by the layout manager)
// Involves populating data into the item through holder
@Override
public void onBindViewHolder(RecyclerViewSimpleTextViewHolder holder, int position) {
Currency currency = items.get(position);
holder.getName().setText(currency.name);
holder.getSymbol().setText(currency.symbol);
holder.getAsset().?????????; // WHAT SHOULD I PUT HERE TO LOAD THE IMAGE FROM THE RAW FOLDER
}
// Create new items (invoked by the layout manager)
// Usually involves inflating a layout from XML and returning the holder
@Override
public RecyclerViewSimpleTextViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View itemView = LayoutInflater.from(viewGroup.getContext()).
inflate(R.layout.currency_list_card_layout, viewGroup, false);
return new RecyclerViewSimpleTextViewHolder(itemView);
}
public class RecyclerViewSimpleTextViewHolder extends RecyclerView.ViewHolder {
private TextView name;
private TextView symbol;
private ImageView asset;
public RecyclerViewSimpleTextViewHolder(View v) {
super(v);
name = (TextView) v.findViewById(R.id.currency_name);
symbol = (TextView) v.findViewById(R.id.currency_symbol);
asset = (ImageView) v.findViewById(R.id.currency_asset);
}
public TextView getName() {
return name;
}
public TextView getSymbol() {
return symbol;
}
public ImageView getAsset() {
return asset;
}
}
}
任何关于如何显示可绘制文件夹中包含的图像的详细帮助都将不胜感激 尝试使用库加载图像。我的建议是毕加索 使用它,您只需调用以下命令即可轻松从drawable加载图像:
Picasso.with(context).load(R.drawable.drawableName).into(holder.getAsset());
尝试使用库加载图像。我的建议是毕加索 使用它,您只需调用以下命令即可轻松从drawable加载图像:
Picasso.with(context).load(R.drawable.drawableName).into(holder.getAsset());
您可以从onBindViewHolder中访问imageview 例如,放置到onBindViewHolder中:
Resources resources = getResources();
holder.getAsset().setImageDrawable(resources.getDrawable(R.drawable.myimage));
您可以从onBindViewHolder中访问imageview 例如,放置到onBindViewHolder中:
Resources resources = getResources();
holder.getAsset().setImageDrawable(resources.getDrawable(R.drawable.myimage));
嗨,Jonty800。谢谢你的回复。我认为您的答案是好的,但在实现您的解决方案后,Android Studio警告我无法解析symbol getResources。你知道我该如何修复这个错误吗?提前感谢。@CBA110 getResources是活动或上下文类的一部分。在适配器中,必须传递上下文。因此,请将适配器的构造更改为public simpleItemRecycleServiceAdapterList项、上下文上下文,然后使用this.Context=Context;设置一个全局变量;。然后,您可以在需要时执行context.getResources hi@Jonty800。谢谢你的回复。我认为您的答案是好的,但在实现您的解决方案后,Android Studio警告我无法解析symbol getResources。你知道我该如何修复这个错误吗?提前感谢。@CBA110 getResources是活动或上下文类的一部分。在适配器中,必须传递上下文。因此,请将适配器的构造更改为public simpleItemRecycleServiceAdapterList项、上下文上下文,然后使用this.Context=Context;设置一个全局变量;。然后,您可以在需要时执行context.getResources