android中如何从SDcard中读取图片文件
privatevoidsetupViewComponent(){//TODOAuto-generatedmethodstub//mTxtResult=(TextView)...
private void setupViewComponent() {
// TODO Auto-generated method stub
//mTxtResult = (TextView)findViewById(R.id.txtResult);
String[] listFromResource = getResources().getStringArray(R.array.face);
mList = new ArrayList<Map<String,Object>>();
for(int i=0;i<listFromResource.length;i++){
Map<String,Object>item = new HashMap<String,Object>();
item.put("imgView", android.R.drawable.ic_menu_camera);
item.put("txtView", listFromResource[i]);
mList.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this, mList, R.layout.list_item,
new String[]{"imgView","txtView"}, new int[]{R.id.imgView,R.id.txtView});
setListAdapter(adapter);
ListView listview = getListView();
listview.setTextFilterEnabled(true);
listview.setOnItemClickListener(listviewOnItemClkLis);
}
就是在Item.put 方法中读取SDcard的图片,我这里是调用了系统的一个小图标,应该怎么改。新手,求大牛指点 展开
// TODO Auto-generated method stub
//mTxtResult = (TextView)findViewById(R.id.txtResult);
String[] listFromResource = getResources().getStringArray(R.array.face);
mList = new ArrayList<Map<String,Object>>();
for(int i=0;i<listFromResource.length;i++){
Map<String,Object>item = new HashMap<String,Object>();
item.put("imgView", android.R.drawable.ic_menu_camera);
item.put("txtView", listFromResource[i]);
mList.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this, mList, R.layout.list_item,
new String[]{"imgView","txtView"}, new int[]{R.id.imgView,R.id.txtView});
setListAdapter(adapter);
ListView listview = getListView();
listview.setTextFilterEnabled(true);
listview.setOnItemClickListener(listviewOnItemClkLis);
}
就是在Item.put 方法中读取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可以算是一个测试用的设配器,最好自己尝试写设配器,自由空间比较大。
不过好像需要加一个权限的,就是在androidmanifest.xml中添加。
你说的读取系统一个小图标R.drawable.ic_menu_camera,其实也是用路径寻找的,不过被google封装起来了,用映射的方法寻找到相关路径下的文件。 比如R.drawable 就知道是res下面drawable-XX(根据系统配置,寻找不同文件夹下的图片)文件下的图片,比如R.layout 就是res下面layout下面的文件。SimpleAdapter可以算是一个测试用的设配器,最好自己尝试写设配器,自由空间比较大。
追问
我这个小程序还需要照相,然后将相片存入SDcard中,就是test.png不确定,这应该怎么读取,谢谢了!!
追答
我记得有获取sdcard的uri之类的,相机好像是提供ContentProvider公开照片资源文件,让别的程序可以获取到的,这个可以自己去baidu或者google下,应该有个缩略图跟实际图的映射表,因为android里面有图片内存限制,好像是8M的内存上限,不然会报OutOfMemory异常崩溃掉,所以这个解决方法的好处是,先读取缩略图显示,如果用户需要看大图,可以再加载大图,android自带的gallery3d是个不错的读取图片的软件,就是采用这种方法的。
另外一种呢,就是自己去找路径去,在sdcard的根目录中,有个文件夹,全文件名是大写,具体名称忘记了,你可以连接上电脑看看,或者不连接电脑,用手机上的可以查看sdcard的软件查看下,找到其中的图片,比如存放照片的文件叫THUMB,我们可以File file = new File("mnt/sdcard/THUMB");然后好像用file.listFile方法吧,就可以得到一个String数组,能够显示此文件夹中所有的文件,那么后面,就好办了,mnt/sdcard/THUMB/数组 [i] 就是路径了,不就能得到绝对路径了吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询