繁体   English   中英

显示来自URL的图像,Android应用程序运行缓慢

[英]Show image from URL, Android-app goes extremly slow

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

因此,我有一个名为ImageDownload的类来进行下载,在我的Fragment中,我有:

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

}

}

然后是ImageBitmap大小和平板电脑RAM大小的问题。 将ImageBitmap加载到RAM上会占用太多RAM。 您可以通过查看日志来检测到此错误,因为系统面临的频繁页面遗漏比页面击中要频繁,因此System.gc()的调用频率非常高,几乎像是抖动问题。 我确信系统是如此频繁地调用.gc() ,并且System.gc()是在GUI线程中调用的,这会干扰UI体验。

您应该使用Google的Volley库

使用毕加索 简单又酷。

我终于找到了答案。 看看这个。 将来可能对您有帮助。 谢谢大家。 这完美地工作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM