我试图在我的应用程序中显示来自URL的图像,但当(仅当)位图显示时,应用程序变得太慢。应用程序运行正常,但当我加载图像时,它会变得非常慢。有人能帮上忙吗?
所以我有一个名为ImageDownload的类,它负责下载,在我的片段中有:
new ImageDownload((ImageView) login_image, this.getActivity().getApplicationContext(),"login_image")
.execute(path);这是我的download Class:
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);
}}
发布于 2014-01-20 13:04:32
然后是ImageBitmap的大小问题&平板电脑的内存大小。在内存中加载ImageBitmap时会占用太多内存。你可以通过查看日志来检测这一点,System.gc()被调用的频率有多高,因为系统面临太频繁的页面未命中而不是页面命中,这几乎就像是颠簸问题。我确信系统会频繁地调用.gc(),而且由于System.gc()是在GUI线程中调用的,这会干扰用户界面体验。
发布于 2014-01-21 02:42:10
你应该使用Google的Volley库
发布于 2014-01-21 06:47:22
使用Picasso。这很简单,很酷。
https://stackoverflow.com/questions/21224025
复制相似问题