如何指定动态从R.res.drawable获取的资源?

时间:2011-12-01 11:16:07

标签: android resources

我在R.res.raw上动态存储了一些视频。

例如,我可以使用以下代码行访问名为v.mp4的视频:

String fileName = "android.resource://" + this.getPackageName() + "/" + R.raw.v;

好的,但我会用一个字符串(“v”)描述我必须打开的视频。然后,我尝试这样做,但它不起作用:

String fileName = "android.resource://" + this.getPackageName() + "/" + R.raw+".v";

我不能这样做,我在R.raw

上收到错误

我也试过这个,但它不起作用:

String fileName = "android.resource://" + this.getPackageName() + "/res/raw/"+"v.mp4";

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

如果你想获得任何资源Path,那么有两种方法:

  1. 使用资源名称

    语法:android.resource://[package]/[res type]/[res name]

    示例:如果res / drawable文件夹中有icon.png图像文件,您可以获得如下路径:

    String PATH="android.resource://com.my.package/drawable/icon";

  2. 使用资源ID

    语法:android.resource://[package]/[resource_id]

    示例:如果res / drawable文件夹中有icon.png图像文件,则可以获取路径:

    String PATH="android.resource://com.my.package/" + R.drawable.icon;

  3. 这是获取存储在drawable文件夹中的任何图像文件的URI的示例。

    同样,你也可以获得res / raw文件夹的URI。

答案 1 :(得分:2)

它必须给你一个错误, R.raw.v.mp4(它必须是R.raw.v)给出一个genarated int引用但不是String,所以你不能通过给出String path来获取它。你可以打印它并看到它生成一个int值只有应用程序才能理解。

答案 2 :(得分:1)

您可以按如下方式使用:

 android.resource://your package/raw/v