作者yauhh (哟)
看板AndroidDev
标题Re: [问题] 读取手机里的相片
时间Sat Apr 14 23:13:24 2012
※ 引述《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
1F:推 d5528300:感谢大大 我来慢慢研究 谢谢!! 04/15 00:10