android中如何从SDcard中读取图片文件

发布网友

我来回答

1个回答

热心网友

用路径的方法寻找,BitmapFactory.decodeFile(路径)返回值是一个Bitmap,比如sdcard的根目录有个test.png,那么可以这么用BitmapFactory.decodeFile("mnt/sdcard/test.png")。然后ImageView之类的图片控件,可以用setImageBitmap(Bitmap)之类的方法,就可以使用sdcard中的图片了,
不过好像需要加一个权限的,就是在androidmanifest.xml中添加。
你说的读取系统一个小图标R.drawable.ic_menu_camera,其实也是用路径寻找的,不过被google封装起来了,用映射的方法寻找到相关路径下的文件。 比如R.drawable 就知道是res下面drawable-XX(根据系统配置,寻找不同文件夹下的图片)文件下的图片,比如R.layout 就是res下面layout下面的文件。SimpleAdapter可以算是一个测试用的设配器,最好自己尝试写设配器,自由空间比较大。追问我这个小程序还需要照相,然后将相片存入SDcard中,就是test.png不确定,这应该怎么读取,谢谢了!!

追答我记得有获取sdcard的uri之类的,相机好像是提供ContentProvider公开照片资源文件,让别的程序可以获取到的,这个可以自己去或者google下,应该有个缩略图跟实际图的映射表,因为android里面有图片内存*,好像是8M的内存上限,不然会报OutOfMemory异常崩溃掉,所以这个解决方法的好处是,先读取缩略图显示,如果用户需要看大图,可以再加载大图,android自带的gallery3d是个不错的读取图片的软件,就是采用这种方法的。

另外一种呢,就是自己去找路径去,在sdcard的根目录中,有个文件夹,全文件名是大写,具体名称忘记了,你可以连接上电脑看看,或者不连接电脑,用手机上的可以查看sdcard的软件查看下,找到其中的图片,比如存放照片的文件叫THUMB,我们可以File file = new File("mnt/sdcard/THUMB");然后好像用file.listFile方法吧,就可以得到一个String数组,能够显示此文件夹中所有的文件,那么后面,就好办了,mnt/sdcard/THUMB/数组 [i] 就是路径了,不就能得到绝对路径了吗?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com