我onActivityResult从mediastore图像选择返回,我可以使用以下内容获取图像的URI:
Uri selectedImage = data.getData();
Run Code Online (Sandbox Code Playgroud)
将其转换为字符串可以得到:
content://media/external/images/media/47
Run Code Online (Sandbox Code Playgroud)
或者路径给出:
/external/images/media/47
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法找到将其转换为绝对路径的方法,因为我想将图像加载到位图而不必将其复制到某处.我知道这可以使用URI和内容解析器完成,但这似乎在重新启动手机时中断,我想MediaStore在重新启动之间不会保持其编号相同.
可能重复:
Android:获取资源中文件的大小?
我想将文件上传到WebServer.要显示上传的进度,我需要知道文件的完整大小.因为我只有文件的Uri(从Intent获得),所以我没有机会获得文件的大小.我的解决方法是打开一个InputStream并计算在此InputStream上读取的字节数.但这很迂回.是否有更简单/传统的方法来解决这个问题?
谢谢
我能够找到如何将android.net.Uri转换为Java.net.URI ,但反之亦然.
所以花了一些时间后我才明白了.这是解决方案(如果有另一种解决方案,那么请发布它)
首先将javaURI转换为字符串然后使用android.net.Uri的解析函数
android.net.URI androidUri = android.net.Uri.parse(javaURI.toString());
Run Code Online (Sandbox Code Playgroud) 有没有办法转换Uri为URL?我需要这个我正在使用的库,它只接受一个URL但我需要在我的设备上使用图像.
我有一个android.net.URI对象(在MediaStore.ACTION_VIDEO_CAPTURE之后由onActivityResult返回的那种):它看起来像content:// media/video/media/33.
我想将它转换为File对象,只有一个File对象 - 我需要将它传递给另一个需要File的构造函数.
如何将这样的URI转换为File对象?如果我试试
File newFile = new File(myURI);
Run Code Online (Sandbox Code Playgroud)
我在Eclipse中收到错误,建议我将URI转换为String.在构造函数中提供URI.getPath()也没有帮助.
这涉及' 如何将android.net.uri对象转换为java.net.uri对象?'问题,遗憾的是似乎没有好的答案,但我想要一个File对象,而不是java uri.
我不介意我是否必须将它写入字节流并再次返回 - 无论什么是最好的方法.
如果我在交叉发布我自己的问题,请道歉,但我想我可能需要让事情更清楚一些.
尝试在Android Activity中执行此代码时:
Uri testurl = Uri.parse("http://www.google.com");
Log.v("HTTPGet", "testurl.toString == " + testurl.toString());
Run Code Online (Sandbox Code Playgroud)
Logcat中唯一的输出是对字符串的引用,但不是字符串本身:
HTTPGet(23045): testurl.toString == [Landroid.net.Uri;@4056e398
Run Code Online (Sandbox Code Playgroud)
如何打印实际字符串?
我正在尝试使用媒体播放器类播放mp3.当我硬编码它的mp3资源时,我希望资源来自一个字符串,而不是直接访问它R.raw.mp3name.
Bundle bundle = getIntent().getExtras();
String Choice= bundle.getString("bundledChoice");
Uri myUri = Uri.parse("R.raw." + Choice);
mPlayer = MediaPlayer.create(activity.this, myUri);
mPlayer.start();
Run Code Online (Sandbox Code Playgroud)
如果我将第二行更改为最后一行mPlayer = MediaPlayer.create(activity.this, R.raw.song)它将起作用,问题是从包中获取的字符串动态创建资源URI.
请指教.