在回收视图中有效加载大图像

时间:2015-10-12 14:59:46

标签: android

我想要显示的10张图片都有400x400左右的尺寸。我在回收视图中加载图像。然而,图像加载和滞后很多我几乎不能滚动。 我收到以下警告

  

跳过43帧!应用程序可能在其主线程上做了太多工作。

所以这是我的recycleview

 @Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = infator.inflate(R.layout.customerow,parent,false);

    MyViewHolder holder = new MyViewHolder(view);

    text1.setTypeface(assent);




    return holder;
}

@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {

    Information current = data.get(position);
    //Picasso.with(context1).load(current.IconId).into(holder.image1);
    holder.text1.setText(current.title);
    holder.image1.setImageResource(current.IconId);

    holder.image1.setOnClickListener(new View.OnClickListener() {
                                         @Override
                                         public void onClick(View v) {
                                             Toast.makeText(context1,"Item clicked"+position,Toast.LENGTH_LONG).show();




                                         }

                                     }

    );

}

@Override
public int getItemCount() {
    return data.size();
}

class MyViewHolder extends RecyclerView.ViewHolder{

  public   TextView text1;
  public   ImageView image1;
    public MyViewHolder(View itemView) {
        super(itemView);
        text1 = (TextView)itemView.findViewById(R.id.textView);

        image1=(ImageView)itemView.findViewById(R.id.imageView);

    }
}

我从drawable加载图片

public static List<Information> getdata(){
    List<Information> data=new ArrayList<>();
    int[] icons={R.drawable.pa,R.drawable.house_abc,R.drawable.abc_avc,R.drawable.strength_beastmaster,
                    R.drawable.strength_brewmaster,R.drawable.strength_bristleback,R.drawable.strength_centaur};

我只是在学习,所以你们可以帮助我吗

1 个答案:

答案 0 :(得分:0)

我有一个建议,here是关于支持多个屏幕的文档。特别是你应该阅读“替代drawables”。在本文中,您可以找到修饰符,哪些尺寸应具有特定密度的所有图像。您应该缩放所有图像并将它们放到正确的文件夹中。