我对这个assets文件夹很困惑.它不是在Android Studio中自动创建的,几乎所有论坛都讨论了Eclipse.
如何在Android Studio中配置Assets目录?
我知道res目录中的文件可以从R.class资产的行为类似文件系统访问,但我想知道,一般来说,最好使用其中一个.
任何人都可以帮助我了解资产和资产之间的真正差异吗?
我正处于Android世界的学习阶段,我刚刚介绍了资产和原始资源.我试图了解使用原始资源与资产的原因.
它们都提供未编译的资源输入流.
似乎Assets提供了比Raw资源更多的灵活性和功能.
一个.您可以在Assets下创建文件夹结构,而不是在Raw下创建
湾 您可以在assets文件夹中动态列出所有资源,而不是在Raw文件夹中.
那么,为什么我会在Android中使用Raw资源?
我有以下代码:
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行这段代码时,它会按字母顺序开始播放资源目录中的所有音频文件,而不是只播放我请求的音频文件.我究竟做错了什么?有没有更好的方法从资源目录播放音频文件?
后续问题:将音频文件保存在资源目录中并将它们保存在res/raw目录中是否有区别?除了他们没有获得ID,如果他们在资产目录中的事实.如果我将音频文件移动到res/raw文件夹,那么我有一个重用MediaPlayers 的问题,因为没有id参数setDataSource().我找不到处理这类问题的好指南.
我确实尝试过使用Google代码和其他资源的示例,演示WebView,但是当我尝试在我自己的代码中执行此操作时,它对我不起作用.
我想加载myfile.html我放在assets文件夹中,并使用:
private WebView myWebView;
myWebView.loadUrl("file:///android_assets/myfile.html");
Run Code Online (Sandbox Code Playgroud)
在模拟器上显示错误
file:///android_assets/myfile.html无法加载网页:找不到请求的文件./android_assets/myfile.html
当我把该文件放到文件res/raw/夹并使用:
myWebView.loadUrl("file:///android_res/raw/myfile.html");
Run Code Online (Sandbox Code Playgroud)
然后只有模拟器android 2.2 API级别8可能加载文件,其他旧版本显示相同的错误.我错过了什么吗?
有没有办法在适用于所有API版本的应用程序包中加载现有的.html文件?
我需要知道assets文件夹上文件的字符串路径,因为我使用的是需要接收字符串路径的map API,我的地图必须存储在assets文件夹中
这是我正在尝试的代码:
MapView mapView = new MapView(this);
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
mapView.setMapFile("file:///android_asset/m1.map");
setContentView(mapView);
Run Code Online (Sandbox Code Playgroud)
出现问题"file:///android_asset/m1.map"因为没有加载地图.
哪个是存储在我的assets文件夹中的文件m1.map的正确字符串路径文件?
谢谢
编辑Dimitru:此代码不工作,它不能在is.read(buffer);与IOException异常
try {
InputStream is = getAssets().open("m1.map");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
text = new String(buffer);
} catch (IOException e) {throw new RuntimeException(e);}
Run Code Online (Sandbox Code Playgroud) 在属于Library项目的类中,我调用:
webview.loadUrl("file:///android_asset/info.html", null);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只有在我将文件info.html 复制到Application的项目资产文件夹中时才有效.
有没有办法告诉Android库代码:"在库的资源文件夹中查找此文件,而不是在应用程序的资源文件夹中"?
我的应用程序引擎在WebView中运行.它跨越不同的IFRAMES.主要应用程序html和iframes html都在android_assets上.在Android 3.x上没有任何问题.在Chrome浏览器等上也是如此
如果我创建了一个IFRAME(createElement - > appendChild),则会创建iframe.
当我在其中加载内容时(iframe.src ="url"<> iframe.contentWindow.location.href ="url")...它取代了主要应用程序!! (而不是加载到iframe)
已经尝试过:
有类似问题的人吗?或者有人可以帮助我找到有关WebView ICS错误和Honeycomb的文档吗?
还发现了许多其他奇怪的问题...... ICS真的是这个车吗?:S:S
iframe android webview android-assets android-4.0-ice-cream-sandwich
我正在尝试进行应用程序范围的字体更改并创建样式文件来执行此操作.在这个文件(下面)我只想改变Android的TextAppearance风格的字体值.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="NightRiderFont" parent="@android:style/TextAppearance">
<item name="android:typeface"> /***help need here***/ </item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
但是字体是"assets/fonts /".我如何访问这个字体,所以我可以使用该样式作为主题,以编程方式手动更改所有TextViews.
总结:如何在XML中访问"资产文件夹中的文件"?
我将声音文件附加在资源文件夹中,以便在通知中播放声音,但我无法播放资源文件夹中的声音.
我有设置页面,用户可以从中设置通知声音,用户也可以播放声音.这部分完成了.我可以使用Media Player播放资源文件夹中的声音.我可以在通知创建时使用相同的逻辑,但是当用户点击通知时可能会发生问题,因为媒体播放器仍在播放声音.
我试过了
notification.sound = Uri.parse("file:///android_asset/Sound/Long/AlarmClock.mp3");
Run Code Online (Sandbox Code Playgroud)
也尝试过这样
notification.sound = Uri.parse("android_asset/Sound/Long/AlarmClock.mp3");
Run Code Online (Sandbox Code Playgroud)
但我的问题仍未解决.
有没有其他方法可以在资产目录中设置通知中的声音?
logcat的
01-10 09:57:01.509: ERROR/PlayerDriver(31): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
01-10 09:57:01.509: ERROR/MediaPlayer(52): error (1, -4)
01-10 09:57:01.519: WARN/NotificationService(52): error loading sound for android_asset/Sound/Long/audio.mp3
01-10 09:57:01.519: WARN/NotificationService(52): java.io.IOException: Prepare failed.: status=0x1
01-10 09:57:01.519: WARN/NotificationService(52): at android.media.MediaPlayer.prepare(Native Method)
01-10 09:57:01.519: WARN/NotificationService(52): at android.media.AsyncPlayer.startSound(AsyncPlayer.java:64)
01-10 09:57:01.519: WARN/NotificationService(52): at android.media.AsyncPlayer.access$200(AsyncPlayer.java:33)
01-10 09:57:01.519: WARN/NotificationService(52): at android.media.AsyncPlayer$Thread.run(AsyncPlayer.java:99)
01-10 09:57:01.519: WARN/PlayerDriver(31): PVMFInfoErrorHandlingComplete
Run Code Online (Sandbox Code Playgroud)
或任何其他想法?请给我提示.
notifications android media-player android-assets android-resources
android-assets ×10
android ×9
assets ×2
android-4.0-ice-cream-sandwich ×1
android-gui ×1
audio ×1
iframe ×1
media-player ×1
webview ×1