大家都知道Android项目中的res目录中的资源eclipse插件会在gen中自动生成相应的id应用,这样就统一了资源管理
那么这种自动生成的id就是写死的东西了 这就导致了不容易做修改
项目中需要将现有的组件打成jar包 这样打包后类文件当然是肯定没问题 但是资源文件就不行了。这个地方的id不能在新建的项目中被应用了
所以资源文件不能被打到res目录中,这种情况下就必须要打到assets目录中
这样就会出现问题了 一般情况下我们应用资源文件是通过int型的id来引用的, 这里就不能直接应用了 我们需要手动读取Assert目录下的资源
Android提供了AssetManager来管理资源
读取就很简单了只需要 在Acitivity中
Context.getAssets().open(“sample.png”)
可以直接获取相应的Inpustream 根据需要可以通过包装来获得需要的流 来解析一些XML TXT等文件
获得Bitmap : BitmapFactory.decodeStream(mapActivity.getAssets().open("btn_zoomout.png"))
获得Drawable:new BitmapDrawable(BitmapFactory.decodeStream(mapActivity.getAssets().open("btn_zoomout.png")))
一般我们用到Button的时候会使用selector来得到一些点击(pressed)、焦点(focused)的一些效果,但当把selector的XML文件放到Assert文件中后 我试了N种的方法包括反射都用上了。发现都是解析不了 看源码也没找到具体什么原因 始终找不到为什么StateListDrawable 不能解析出来,
实在没办法了。。但问题还是得解决啊。 换了个思路
既然XML类型的StateListDrawable解析不了 我可以手动创建一个StateListDrawable对象啊,这个真是简单啊
白白花了那么多时间去看源码试方法钻牛角尖,换了个角度才豁然开朗,
这样就实现功能了,还有就是要注意最后要关闭流 这个最好是统一管理起来,
上面是打jar包时的文件目录 需要选择java代码 然后和assets目录 像gen和res就不要打到包里了,当然manifest这些文件也不能打包
分享到:
相关推荐
本demo是结合博客的资源,如有不懂请去看博客 http://blog.csdn.net/u013895206 ,文章是:android 使用gradle导出jar包,并包含assets资源文件夹。谢谢!
很多时候我们需要将资源文件以XML形式放在assets文件夹下,我写的这个demo是一个比较通用的获取xml输入流,解析xml获取想要数据的方法,希望对大家有帮助。
获取assets文件夹下资源 获取assets文件夹下资源 详细介绍:https://blog.csdn.net/Greathfs/article/details/52123984
Qt on Android:资源文件系统qrc与assets.docxQt on Android:资源文件系统qrc与assets.docx
读取Assets资源文件 Json解析
实现从Android项目下的assets中获取ini文件的指定内容的功能
Android Ndk: 如何从native层直接获取 assets文件夹下的文件-附件资源
Android 中获取Assets目录下的文件和子目录下的文件,获取raw文件夹下的文件
不同平台下的加载路径,跳过Bom获取解析Xml文件信息。 相关文章解析http://blog.csdn.net/until_/article/details/79387028
Android 使用MediaPlayer播放assets或者raw目录的音频文件 https://blog.csdn.net/qq_31939617/article/details/80491552
在工程目录assets下的文件,将目录下的文件复制到手机内存或者SD卡内存中。
目的:当App中用到固定的json数据时,如:国家城市列表、班级成员等时,可以将json数据制作为本地json文件存入assets文件夹下。... // 获得assets资源管理器(assets中的文件无法直接访问,可以使用AssetManager访问
Android 加载assets文件夹的文本文件 图片
在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。 介绍...
今天用到了提示音,读取 android 文件夹 assets 下的音频,写了个demo,可以直接拿去用;文件夹下音频大小好像不能超过1M,否则可能不能读取;
Android使用Dom方式解析XML,虽然xml文件太大时不建议用dom方式解析,但是如果文件比较小,也不失为一种选择。项目中xml放在assets文件夹下,view绑定使用butterknife
本文实例讲述了Android播放assets文件里视频文件相关问题。分享给大家供大家参考,具体如下: 今天做了一个功能,就是播放项目工程里面的视频文件,不是播放SD卡视频文件。 我开始尝试把视频文件放到 assets文件目录...
通过代码创建一个现在不存在,自己想要存放信息的文件夹和创建xml文件,并向xml中写入信息。