Android异步加载数据和图片的保存思路详解

2019-12-10 18:20:27丽君
易采站长站为您分析Android异步加载数据和图片的保存思路详解的相关资料,需要的朋友可以参考下  

把从网络获取的图片数据保存在SD卡上,

先把权限都加上

网络权限 android.permission.INTERNET

SD卡读写权限

android.permission.MOUNT_UNMOUNT_FILESYSTEMS
android.permission.WRITE_EXTERNAL_STORAGE

总体布局 

写界面,使用ListView,创建条目的布局文件,水平摆放的ImageView TextView

在activity中获取到ListView对象,调用setAdapter()方法,设置一个适配器

新建一个包 Adapter,新建一个适配器ContactsAdapter继承系统的BaseAdapter

新建一个domain包,新建一个Contact的javaBean,属性id,name,image,有参构造函数

新建一个service包,新建一个ContactService业务类,新建一个静态方法getContacts(),获取联系人的,getImages()获取图片

开启新线程,使用ContactService.getContacts()里面实现获取网络数据,返回List对象,使用Handler传递数据给主线程

创建缓存图片的SD卡目录

获取File对象,通过new File(),获取到SD卡根目录下面的cache文件夹,参数:

Environment.getExternalStorageDirectory(),”cache”文件夹名称

调用File对象的exists()方法,判断目录是否存在,不存在就创建,调用File对象的mkdirs()

展示ListView 

设置ContactsAdapter类的构造函数,传递进去参数:数据,布局文件,缓存目录FIle对象

重写getCount()方法,return数据的条数

重写getItem()方法,返回 根据索引得到的集合中的数据,List对象的get()方法,参数:索引

重写getItemId()方法,一般返回数据的索引

重写getView()方法,传递进来的参数:position索引,convertView

convertView是缓存的View对象,当第一屏的时候,该View对象为null,判断如果为null,就调用布局填充器来填充条目布局文件。