从URL显示图片,Android-app变得极其缓慢

时间:2014-01-19 23:24:00

标签: android image performance url bitmap

我正在尝试通过URL在我的应用中显示图像,但是当(仅当)显示位图时,应用程序变得太慢了。应用程序运行正常,但是当我加载图像时,它变得极其缓慢。有人可以帮忙吗?

所以我有一个名为ImageDownload的类来进行下载,在我的片段中我有:

new ImageDownload((ImageView) login_image, this.getActivity().getApplicationContext(),"login_image")
        .execute(path);

这是我的下载课程:

public class ImageDownload extends AsyncTask<String, Void, Bitmap> {
private Context mContext;
private String filename;
ImageView bmImage;

public ImageDownload(ImageView bmImage, Context mContext, String filename) {
    this.bmImage = bmImage;
    this.mContext = mContext;
    this.filename = filename;
}

protected Bitmap doInBackground(String... urls) {
    String urldisplay = urls[0];
    Bitmap mIcon11 = null;
    try {
        InputStream in = new java.net.URL(urldisplay).openStream();

        mIcon11 = BitmapFactory.decodeStream(in,null,null);
        //EDIT:

        in.close();

        // The isuue is not soved yet 

    } catch (Exception e) {

        e.printStackTrace();

    }
    return mIcon11;
}

protected void onPostExecute(Bitmap result) {

    bmImage.setImageBitmap(result);

}

}

4 个答案:

答案 0 :(得分:1)

然后你的ImageBitmap&amp;的大小问题平板电脑的RAM大小。在RAM上加载ImageBitmap时需要占用太多RAM。您可以通过查看日志来检测这一点,System.gc()被调用的频率是多少,因为系统面临的页面错误太频繁而不是页面命中,这几乎就像捶打问题一样。我确信系统正在如此频繁地调用.gc(),并且在GUI线程中调用System.gc()时,它会带来令人不安的UI体验。

答案 1 :(得分:0)

您应该使用Google的Volley库

答案 2 :(得分:0)

使用Picasso。这很简单,很酷。

答案 3 :(得分:0)

我终于找到了回应。看看这个。它可能在将来帮助你。谢谢你们所有人。这非常有效:

http://www.technotalkative.com/android-load-images-from-web-and-caching/