我正处于Android世界的学习阶段,我刚刚介绍了资产和原始资源.我试图了解使用原始资源与资产的原因.
它们都提供未编译的资源输入流.
似乎Assets提供了比Raw资源更多的灵活性和功能.
一个.您可以在Assets下创建文件夹结构,而不是在Raw下创建
湾 您可以在assets文件夹中动态列出所有资源,而不是在Raw文件夹中.
那么,为什么我会在Android中使用Raw资源?
我一直在尝试获取资产文件的URI路径.
uri = Uri.fromFile(new File("//assets/mydemo.txt"));
Run Code Online (Sandbox Code Playgroud)
当我检查文件是否存在时,我看到该文件不存在
File f = new File(filepath);
if (f.exists() == true) {
Log.e(TAG, "Valid :" + filepath);
} else {
Log.e(TAG, "InValid :" + filepath);
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何提及资产文件夹中存在的文件的绝对路径
我需要从资产中获取位图和声音.我尝试这样做:
BitmapFactory.decodeFile("file:///android_asset/Files/Numbers/l1.png");
Run Code Online (Sandbox Code Playgroud)
像这样:
getBitmapFromAsset("Files/Numbers/l1.png");
private Bitmap getBitmapFromAsset(String strName) {
AssetManager assetManager = getAssets();
InputStream istr = null;
try {
istr = assetManager.open(strName);
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(istr);
return bitmap;
}
Run Code Online (Sandbox Code Playgroud)
但我得到的是自由空间,而不是图像.
这该怎么做?
是否有像res或drawable这样的文件夹用于mp3或一般的音频文件?如果是,它是什么以及如何从应用程序访问它?
我目前正在处理的应用程序有数百张图片.目前我将它们存储在'Drawable'文件夹中.我正在考虑将所有这些文件移到Assets文件夹中.
我的问题是:使用这两种方法时性能是否有任何差异?
我想以编程方式访问将包含在我的项目文件夹中的特定文件。有没有办法做到这一点?如果是这样,我将文件放在项目文件夹中的什么位置,获取其文件路径的简单代码是什么?
private void saveFileToDrive() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
java.io.File spreadsheet = new java.io.File("Untitled spreadsheet.xlsx");
String filePath = spreadsheet.getAbsolutePath();
System.out.println("file path is"+filePath);
URL fileURL = getClass().getClassLoader().getResource("Untitled spreadsheet.xlsx");
String filePath2 = fileURL.getPath();
System.out.println("file path2 is"+filePath2);
java.io.File fileContent = new java.io.File(filePath);
FileContent mediaContent = new FileContent("application/vnd.ms-excel", fileContent);
File body = new File();
body.setTitle(fileContent.getName());
body.setMimeType("application/vnd.ms-excel");
File file = service.files().insert(body, mediaContent).setConvert(true).execute();
if (file != null) {
showToast("File uploaded: " + file.getTitle());
}
else
; …Run Code Online (Sandbox Code Playgroud) 在本教程“学习在 Android 应用程序中解析 XML 数据”中,作者将他的 XML 文件放入该assets文件夹中。但在其他教程中他们建议使用res/xml. 他们都没有解释为什么他们拿走了他们使用的文件夹。
这两个文件夹有什么区别?什么是最佳实践?性能上有区别吗?