推 d5528300:感謝大大 我來慢慢研究 謝謝!! 04/15 00:10
※ 引述《d5528300 (承)》之銘言:
: 各位大大好 我是android的新手
: 最近想要試試看把手機裡的照片讀取到image view上面
: 我知道相片是存在sd卡裡面 但是還是不知道要怎樣取得
: 也爬文過了 網路上也有找到了一些code 但都失敗= =
: 請問各位android高手可以教教我嗎~
: 不然可以提供 有教學或有sample code的網站 讓我自己慢慢找
: 精華區那些也都有看了
: 但對新手感覺都有點困難....
: 非常感謝各位!!
關於圖片讀取,個人讀過一些資料之後,覺得現在的情況很有趣,
Android提供圖片處理的功能,但顯然不能一下子讀太多MB等級的圖片,
否則out of memory的問題等著你. 也就是如果要讀圖片,
最好同時要懂得適合的處理圖片的方法.
介紹你看個網頁:
http://stackoverflow.com/questions/477572/android-strange-out-of-memory-
issue-while-loading-an-image-to-a-bitmap-object
縮址 http://0rz.tw/dwxoi
從Sash的答案中,可以學到從BitmapFactory中取檔案的方法:
Bitmap bmpImage = BitmapFactory.decodeFile(path, options);
並且有提到怎麼做BitmapFactory.Options設定讓使用空間小一點.
從Fedor的答案中可以見到一個大型的解決方式,是除了以BitmapFactory的共用
來節省記憶體的使用之外,還針對圖片尺寸做各別縮放尺度的調整.
當然,首先要知道怎麼去取得path. API level 8開始,有Environment.DIRECTORY_DCIM
可以直接取相機的儲存路徑,但在前幾個API level,可能要自己定義相機的儲存路徑為
"/DCIM"
然後從Environment.getExternalStorageDirectory()可以取得儲存裝置的根目錄,
可能是"/sdcard". 知道了完整路徑之後就用檔案方式開啟目錄:
File dir = new File(dirPath); //dirPath = "/sdcard/DCIM"
然後用.listFiles()讀全部檔案,或者用.list(filter)讀限定條件的檔案.
大概是知道了這些,就可以做得不錯了.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.67.34