4

アプリがサーバーに接続されていて、写真の読み込みが遅くなったり、スクロールしたときに上下が滑って見えなくなったようです。 これはグライドの私のアダプタ:グライドで画像を読み込むのが遅い

のDataAdapter

public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> { 
    private Context context; 
    private ArrayList<AndroidVersion> android; 


    public DataAdapter(Context context,ArrayList<AndroidVersion> android) { 
     this.context = context; 
     this.android = android; 
    } 


    @Override 
    public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.card_row, viewGroup, false); 
     return new ViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(DataAdapter.ViewHolder viewHolder, int i) { 

     viewHolder.tv_name.setText(android.get(i).getName()); 
     viewHolder.tv_version.setText(android.get(i).getVer()); 
     viewHolder.tv_api_level.setText(android.get(i).getApi()); 

     // load image into imageview using glide 
     Glide.with(context).load("http://memaraneha.ir/Erfan/images/"+android.get(i).getPic()) 
       .placeholder(R.drawable.truiton) 
       .error(R.drawable.truiton) 
       .into(viewHolder.tv_image); 
    } 

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

    public class ViewHolder extends RecyclerView.ViewHolder{ 
     private TextView tv_name,tv_version,tv_api_level; 
     public ImageView tv_image; 
     public ViewHolder(View view) { 
      super(view); 

      tv_name = (TextView)view.findViewById(R.id.tv_name); 
      tv_version = (TextView)view.findViewById(R.id.tv_version); 
      tv_api_level = (TextView)view.findViewById(R.id.tv_api_level); 
      tv_image= (ImageView) view.findViewById(R.id.img); 

     } 
    } 

} 

いずれかが助けることができる場合は、その操作を行ってください!

答えて

2

あなたはURLから画像を取得するときだけ

ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 

    //save scaled down image to cache dir 
    newBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 

    File imageFile = new File(filePath); 

    // write the bytes in file 
    FileOutputStream fo = new FileOutputStream(imageFile); 
    fo.write(bytes.toByteArray()); 

チェックthis example

1

使用diskCacheStrategy(DiskCacheStrategy、このコードはあなたもこれを行うことができ、そのイメージ

のサイズを縮小し、これを追加.ALL)。より多くの訪問のため

このClick Here

1

私はdontTransform()方法を使用し、それはほとんど私の第二を救いました。画像は本当に最初にリストにロードされます。

関連する問題