Android 獲取本地圖片實現圖片輪播
剛開始做這個專案的時候我是通過直接獲取本地圖片實現輪播,但是這樣做的話有一個很嚴重的問題就是每次執行15分鐘左右就會發生記憶體溢位,所以我改成下面的方式去獲取本地圖居然不會發生溢位了。
1、我建立一個類用於獲取本地圖片:
public class ImagePathFromSD {
public static List<Bitmap> getImagePathFromSD(String path) {
List<Bitmap> bitmapList = new ArrayList<Bitmap>();
// 得到該路徑資料夾下所有的檔案
File fileAll = new File(path);
File[] files = fileAll.listFiles();
if (files != null && files.length > 0) {
for (int i = 0; i < files.length; i++) {
File file = files[i];
FileInputStream fis = null;
try {
fis = new FileInputStream(file.getPath());
Bitmap bitmap = BitmapFactory.decodeStream(fis);
bitmapList.add(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
return bitmapList;
}
}
這裡的引數path就是傳遞一個本地圖片的路徑例如:
private String path = "/sdcard/image/";
2、獲取本地圖片
private List<Bitmap> bitmapList = ImagePathFromSD.getImagePathFromSD(path);
3、就是顯示圖片
這裡我是在介面卡裡面的使用大概如下
ImageView imageView = (ImageView) view.findViewById(R.id.image_view);
imageView.setImageBitmap(bitmapList.get(position));
4、新增相應的讀寫許可權
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />