1. 程式人生 > >Android 獲取本地圖片實現圖片輪播

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" />