Android编程学习之异步加载图片的方法

2019-12-10 19:58:56于海丽

易采站长站为您分析Android编程学习之异步加载图片的方法,以实例形式较为详细的分析了Android异步加载图片所涉及的页面布局及功能实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Android编程学习之异步加载图片的方法。,具体如下:

最近在android开发中碰到比较棘手的问题,就是加载图片内存溢出。我开发的是一个新闻应用,应用中用到大量的图片,一个界面中可能会有上百张图片。开发android应用的朋友可能或多或少碰到加载图片内存溢出问题,一般情况下,加载一张大图就会导致内存溢出,同样,加载多张图片内存溢出的概率也很高。

列一下网络上查到的一般做法:

1.使用BitmapFactory.Options对图片进行压缩

2.优化加载图片的adapter中的getView方法,使之尽可能少占用内存

3.使用异步加载图片的方式,使图片在页面加载后慢慢载入进来。

1、2步骤是必须做足的工作,但是对于大量图片的列表仍然无法解决内存溢出的问题,采用异步加载图片的方式才能有效解决图片加载内存溢出问题。

测试的效果图如下:

Android编程学习之异步加载图片的方法

在这里我把主要的代码贴出来,给大家分享一下。

1、首先是MainActivity和activity_main.xml布局文件的代码。

(1)、MainActivity的代码如下:

 

 
  1. package net.loonggg.test;   import java.util.List;  
  2. import net.loonggg.adapter.MyAdapter;   import net.loonggg.bean.Menu;  
  3. import net.loonggg.util.HttpUtil;   import net.loonggg.util.Utils;  
  4. import android.app.Activity;   import android.app.ProgressDialog;  
  5. import android.os.AsyncTask;   import android.os.Bundle;  
  6. import android.view.Window;   import android.widget.ListView;  
  7. public class MainActivity extends Activity {   private ListView lv;  
  8. private MyAdapter adapter;   private ProgressDialog pd;  
  9. @Override  protected void onCreate(Bundle savedInstanceState) {  
  10. requestWindowFeature(Window.FEATURE_NO_TITLE);   super.onCreate(savedInstanceState);