怎么SDCard上的获取相册照片

本文介绍了一种在Android系统中通过ContentResolver从指定的Uri获取文件真实路径的方法,并提供了详细的Java代码实现。此方法适用于从相册选择图片等场景。

 

[java]  view plain  copy
 
  1. private String getRealPathFromURI(Uri contentUri) {  
  2.         Cursor cursor = null;  
  3.         String result = contentUri.toString();  
  4.         String[] proj = {MediaStore.Images.Media.DATA};  
  5.         cursor = managedQuery(contentUri, proj, null, null, null);  
  6.         if(cursor == null) throw new NullPointerException("reader file field");  
  7.         if (cursor != null) {  
  8.             int column_index = cursor  
  9.                     .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);  
  10.             cursor.moveToFirst();  
  11.             // 最后根据索引值获取图片路径  
  12.             result = cursor.getString(column_index);  
  13.              try    
  14.                 {    
  15.                     //4.0以上的版本会自动关闭 (4.0--14;; 4.0.3--15)    
  16.                     if(Integer.parseInt(Build.VERSION.SDK) < 14)    
  17.                     {    
  18.                         cursor.close();    
  19.                     }    
  20.                 }catch(Exception e)    
  21.                 {    
  22.                     Log.e(TAG, "error:" + e);    
  23.                 }    
  24.         }  
  25.         return result;  
  26.     }  

 

 

//path = path.substring(path.indexOf("/sdcard"), path.length());  目录不要写死 。

转载于:https://www.cnblogs.com/exmyth/p/5411721.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值