首页 > 其他分享 >Android中asset文件夹和raw文件夹区别

Android中asset文件夹和raw文件夹区别

时间:2023-04-06 21:34:31浏览次数:36  
标签:文件 assets res Uri InputStream raw 文件夹 Android


res/raw和assets的相同点:
1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
读取文件资源:
1.读取res/raw下的文件资源
获得取InputStream对象:
InputStream is = getResources().openRawResource(R.id.beep);
有时候需要获得Uri对象:
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.beep);

2.读取assets下的文件资源
获得取InputStream对象:
InputStream is = getAssets().open("beep.ogg");
有时候需要获得Uri对象:
Uri uri = Uri.parse("file:///android_asset/beep.ogg");

然后通过uri播放音效:

Ringtone ringtone = RingtoneManager.getRingtone(context, uri);
ringtone.setStreamType(AudioManager.STREAM_SYSTEM);
ringtone.play();




实际测下来,第一种方式可以,第二种不行(难道是ogg文件不可以,试试txt文件),具体原因待查!



标签:文件,assets,res,Uri,InputStream,raw,文件夹,Android
From: https://blog.51cto.com/u_5454003/6174173

相关文章

  • 四个方向上的SlidingDrawer
    http://blog.sephiroth.it/2011/03/29/widget-slidingdrawer-top-to-bottom//**Copyright(C)2008TheAndroidOpenSourceProject**LicensedundertheApacheLicense,Version2.0(the"License");*youmaynotusethisfileexceptincomplia......
  • Android service的完全详解
    Service全部内容基本会在本篇涉及到,我们将围绕以下主要知识点进行分析:Service简单概述Service在清单文件中的声明Service启动服务实现方式及其详解Service绑定服务的三种实现方式关于启动服务与绑定服务间的转换问题前台服务以及通知发送服务Service与线程Thread的区别管理......
  • 可左右两侧挤压傍边布局的Android抽屉
    我参考了这篇文章,我将它改了一下:可动态布局的Android抽屉之基础工程中需要这样的效果,左边和右边的Panel可以打开关闭:我把左边和右边的Panel封装成2个类了。这里要特别注意,抽屉是需要“handler”的,我这里可以把任何View都看成“handler”,使用setBindView(Vie......
  • Android自定义捕获Application全局异常
    参考:http://bigcat.easymorse.com/?p=1152packageqianlong.qlmobile.ui;importjava.io.File;importjava.io.FileOutputStream;importjava.io.FilenameFilter;importjava.io.PrintWriter;importjava.io.StringWriter;importjava.io.Writer......
  • Android播放GIF动画
    Android支持GIF动画,但是如果利用ImageView标签直接写在布局文件中:<ImageViewandroid:id="@+id/gifpicture"android:layout_width="fill_parent"android:layout_height="wrap_content"android:src="@drawable/animation"......
  • Spartacus 项目中的 facade 和 core 文件夹
    Spartacus是SAPCommerceCloud的storefront框架,feature-libs文件夹下的facade文件夹和core文件夹是Spartacus中用于实现特定功能的库文件夹。它们各自的作用如下:facade文件夹:存放与storefront框架中的各种功能和业务逻辑相关的代码。这些代码通过facade模式......
  • 安卓项目源码 校园跑腿帮APP android stu dio项目 附源码
    全新安卓项目源码校园跑腿帮APPandroidstudio项目附源码,安装包,说明,录屏,截屏。Materialdesign风格设计,支持登录注册,任务发布,修改,上拉加载,下拉刷新,一键换肤等。YID:7598641395930165......
  • Android 11全屏显示
    @OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//去掉标题栏this.requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(ActivityLoginBinding.inflate(getLayoutInflater()......
  • Android - Activity
     1.活动 Activity  是一种可以包含用户界面的组件,主要用于和用户进行交互,一个应用程序可以包含0个或多个活动;项目中的任何Activity都要重写onCreate()方法app/java/.activitytest/FirstActivity(AS自动完成)  2.基本用法(1)创建activity(2)布局文件app/res/layout/fir......
  • Android(安卓)IOS(苹果)判断是否开启通知权限
    在首页onLoad调用permissions()方法;this.permissions();permissions()方法具体代码://判断是否有通知权限permissions(){//#ifdefAPP-PLUSif(plus.os.name=='Android'){//判断是Androidva......