【发布时间】:2018-03-15 20:31:24
【问题描述】:
大家好,我的应用程序出现问题,它总是显示内存不足或位图分配失败。我认为由于图像很大,我有一个recyclerview、cardview 和一个gridview 我认为我的问题的答案是使用像glide 或picasso 这样的图像加载器,但我不知道如何输入它在我的代码中没有 get.(position) 在我的onbindViewholder 中输入我的滑行并且我所有的图像都在可绘制而不是在 URL 中请帮助我。我在 Youtube 上得到了这个,这是一个论文项目,这是我的代码:
TraceMyAdapter
public class TraceMyAdapter extends RecyclerView.Adapter<TraceMyHolder> {
Context c;
String[] alphabet;
int[] images;
public TraceMyAdapter(Context ctx, String[] alphabet, int[] images){
this.c = ctx;
this.alphabet = alphabet;
this.images = images;
}
@Override
public TraceMyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.trace_cardview, null);
TraceMyHolder holder = new TraceMyHolder(v);
return holder;
}
@Override
public void onBindViewHolder(TraceMyHolder holder, final int position) {
int s = holder.getAdapterPosition();
holder.img.setImageResource(images[position]);
holder.alphabetTxt.setText(alphabet[position]);
holder.setItemClickListener(new TraceItemClickListener() {
@Override
public void onItemClick(View v, int pos) {
Intent i=new Intent(c,Trace_view.class);
i.putExtra("Letters",alphabet[position]);
i.putExtra("Images",images[position]);
c.startActivity(i);
}
});
}
@Override
public int getItemCount() {
return alphabet.length;
}
}
跟踪菜单
public class Tracing_menu extends AppCompatActivity {
String[] names = {
"Letter A",
"Letter B",
"Letter C",
"Letter D",
"Letter E",
"Letter F",
"Letter G"};
int[] images = {
R.drawable.bga,
R.drawable.bgb,
R.drawable.bgc,
R.drawable.bgd,
R.drawable.bge,
R.drawable.bgf,
R.drawable.bgg
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tracing_menu);
RecyclerView rv = findViewById(R.id.myRecycler);
rv.setLayoutManager(new GridLayoutManager(this, 3));
rv.setItemAnimator(new DefaultItemAnimator());
TraceMyAdapter adapter = new TraceMyAdapter(this, names, images);
rv.setAdapter(adapter);
}
}
我的持有者
public class TraceMyHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
ImageView img;
TextView alphabetTxt;
private TraceItemClickListener TraceitemClickListener;
public TraceMyHolder(View itemView) {
super(itemView);
img = (ImageView) itemView.findViewById(R.id.img_alphabet);
alphabetTxt = (TextView) itemView.findViewById(R.id.txt_alphabet);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
this.TraceitemClickListener.onItemClick(view, getLayoutPosition());
}
public void setItemClickListener(TraceItemClickListener ic){
this.TraceitemClickListener = ic;
}
}
【问题讨论】:
标签: android android-recyclerview android-imageview android-cardview android-studio-3.0