从android中的文件路径获取内容uri我知道图像的绝对路径(比如说/sdcard/cats.jpg)。这个文件的内容是否有任何方法?实际上在我的代码中我下载了一个图像并将其保存在特定位置。为了在ImageView中设置图像,我使用路径打开文件,获取字节并创建位图,然后在ImageView中设置位图。这是一个非常缓慢的过程,相反,如果我可以获得内容uri,那么我可以很容易地使用该方法 ImageView.setImageUri(uri)
3 回答
![?](http://img1.sycdn.imooc.com/5458689e000115c602200220-100-100.jpg)
潇湘沐
TA贡献1816条经验 获得超6个赞
试试:
ImageView.setImageURI(Uri.fromFile(new File("/sdcard/cats.jpg")));
或者:
ImageView.setImageURI(Uri.parse(new File("/sdcard/cats.jpg").toString()));
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
动漫人物
TA贡献1815条经验 获得超10个赞
它来晚了,但将来可能会有所帮助。
要获取文件的内容URI,您可以使用以下方法:
FileProvider.getUriForFile(Context context, String authority, File file)
它返回内容URI。
![?](http://img1.sycdn.imooc.com/5458471300017f3702200220-100-100.jpg)
元芳怎么了
TA贡献1798条经验 获得超7个赞
你可以尝试下面的代码片段
public Uri getUri(ContentResolver cr, String path){ Uri mediaUri = MediaStore.Files.getContentUri(VOLUME_NAME); Cursor ca = cr.query(mediaUri, new String[] { MediaStore.MediaColumns._ID }, MediaStore.MediaColumns.DATA + "=?", new String[] {path}, null); if (ca != null && ca.moveToFirst()) { int id = ca.getInt(ca.getColumnIndex(MediaStore.MediaColumns._ID)); ca.close(); return MediaStore.Files.getContentUri(VOLUME_NAME,id); } if(ca != null) { ca.close(); } return null;}
- 3 回答
- 0 关注
- 2857 浏览
添加回答
举报
0/150
提交
取消