webentwicklung-frage-antwort-db.com.de

Das Laden von Bildern mit Gleiten ist langsam

Ich habe eine App mit dem Server verbinden und wenn das Laden von Bildern so langsam erscheint, und wenn das Bild nach oben und unten gleitet, scheint das Gleiten wieder ein Bild zu sein! Dies ist mein Gleitschirmadapter: 

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);

        }
    }

}

Wenn jemand helfen kann, tun Sie das bitte!

7
erfan

Fügen Sie dies einfach hinzu, wenn Sie ein Bild von URL erhalten. Dieser Code reduziert die Größe des Bildes

sie können das auch tun,

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());

check dieses Beispiel

2
Amit Vaghela

Ich habe die dontTransform()-Methode verwendet und es hat mir fast eine Sekunde gespart. Bilder werden wirklich zuerst in die Liste geladen.

2
Prabhat

verwenden Sie diskCacheStrategy (DiskCacheStrategy.ALL) .

für weitere Informationen besuchen Sie diese Klicken Sie hier

0
Rjz Satvara