【问题标题】:path to Assets to string?资产到字符串的路径?
【发布时间】:2011-11-10 10:19:37
【问题描述】:

例如,这将是外部存储器上文件的路径...

String path = Environment.getExternalStorageDirectory().toString()+"/myApp/face.jpg";

但是资产文件夹也有这样的路径吗?

干杯!

附言

"file:///android_asset/1.png"

给出一个未找到的文件。

【问题讨论】:

  • 为什么要做这样的事情?顺便说一句,资产是一个旨在放置一些原始文件的文件夹。字符串应放在 res/values 中,并通过 R 自动生成的文件进行访问。
  • 不,不,assets 文件夹将包含 PNG。该字符串是我需要的路径,例如“file:///android_asset/1.png”(只是它不起作用)。因为我的应用一开始是在处理来自 ExternalStorage 的文件。
  • 这不是从资源中获取图像的方法。并且图像应该放在 res/drawables 上。这样您就可以从 R.drawable.myfile 中获取可绘制对象。如果要从资产中检索通用文件,请使用 AssetManager 类。如果资源在 res/raw 上,您应该使用 Activity.getResources().openRawResource("myfile.txt");
  • 我刚刚发现了这个问题的可能重复:stackoverflow.com/questions/4789325/…

标签: java android


【解决方案1】:

资产的路径是

file:///android_asset/[path_under_the_asset_folder]/your_file.ext

如果您收到的是FileNotFoundException,那么您的[path_under_the_asset_folder] 很可能是错误的。

【讨论】:

  • 没有任何“[path_under_the_asset_folder]”,文件就在assets文件夹中,没有任何子文件夹。
  • 您确定该文件已正确包含在 APK 中吗?如果您已使用 Windows 文件资源管理器将图像添加到资产文件夹,请不要忘记在 Eclipse 下使用 F5 刷新该文件夹,否则您的资源将不会包含到 APK。
  • 全部完成。 :) 但我已阅读该文件:///... 仅适用于 webview。所以猜测将不得不将这些文件放入 r.drawable :)
  • 不一定。在我这边,我经常使用资产寻求帮助或显示在 Dialog 框中的 EULA 文件,这很好用。你尝试过@Martin 建议的方式吗?
  • 以马丁的方式实际上不确定如何将可读性转换为字符串路径。有什么想法吗?
【解决方案2】:

如果您只需要可访问性原因的路径,您可以使用

AssetFileDescriptor descriptor = getAssets().openFd("file.txt");
FileReader reader = new FileReader(descriptor.getFileDescriptor());

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 2021-11-17
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2022-06-10
    • 2012-01-18
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多