在ListView中缓慢加载ImageView - Android

时间:2016-09-08 08:47:23

标签: android listview imageview picasso firebase-storage

我已经阅读了一些关于在Android中加载图片的帖子,但这个论点对我来说有点混乱。 我有一个ListView,我会在其中加载一些来自firebase存储的图像。我还有来自https://books.google的其他图像,这些图像会立即加载。

当我从firebase存储加载图像时,设备非常慢。我已尝试使用 Picasso 库以及此代码:

 public class loadImage extends AsyncTask<String, String, Bitmap> {

    HttpURLConnection connection;
    BufferedReader reader;

    @Override
    protected Bitmap doInBackground(String... params) {
        try {
            URL url = new URL(params[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();

            InputStream inputStream = connection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder stringBuffer = new StringBuilder();

            String line = "";
            while ((line = reader.readLine()) != null) {
                stringBuffer.append(line);
            }


            return BitmapFactory.decodeStream((InputStream) url.getContent());

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
            try {
                if(reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(Bitmap result) {
        super.onPostExecute(result);
        bookImage.setImageBitmap(result);
    }
}

也许Volley比毕加索更好?还是壁画还是滑翔? 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案: GLIDE 。它比 Picasso 更好,Google推荐它。 通过此链接,您可以获得有关Glide和Picasso之间差异的一些信息:

Glide vs Picasso

干得好。