参考文档:1:jar包中包含资源,资源放在assets文件夹中http://my.oschina.net/u/614511/blog/76957

2:jar包中不包含资源,资源放在主工程的res中http://my.oschina.net/handsomeban/blog/150220

3:jar包中不包含资源,新建一个目录存放资源http://blog.csdn.net/wletv/article/details/8547797

3方案获取资源方法:http://riddickbryant.iteye.com/blog/436693

下面两篇说出了原理,不方便使用。

http://blog.csdn.net/p106786860/article/details/12152011

http://blog.csdn.net/xiaanming/article/details/9257853

例一:

在Android中可以将资源文件放在assets目录(可以有子目录)中和程序一起打包为jar,在其他项目引用时可以只引用jar包,不需要导入资源文件,在编译应用时会将jar包assets目录中的文件跟应用中的assets目录中的文件合并,如果jar中的文件和应用中的文件重名在编译的时候会报错“Error generating final archive: Found duplicate file for APK”提示有重名文件。

然后就可以应用中通过如下方法获取资源文件

1 Drawable.createFromStream(am.open("login_btn_src_pressed.png"),"login_btn_src_pressed")

其中的am对象为AssetManager实例,通过Activity.getAssets()获得,用来访问assets目录资源

android中各个平台提供的SDK的jar包就是这样弄的。

第二中方案就是把代码导成jar包,然后将资源相应的添加到主工程的目录下就可以了。

例三:新建一个工程,在工程中scr文件夹下创建com/lj/jartest/JarTest.java

在src目录下新建目录resource,在resource目录下存放图片ic_launcher.png

不可在项目根目录下新建文件夹存放资源,即跟src同一层级的文件夹,这样会找不到。

资源也可以按android的存放方法存放,即放在res目录下对应的文件夹下。

在JarTest.java中创建方法:

public Bitmap getBimtap(Context context) {InputStream is = getClass().getClassLoader().getResourceAsStream("resource/ic_launcher.png");return BitmapFactory.decodeStream(is);}

将工程src文件夹导成jar包,将jar包加入主工程,主工程可以通过getBitmap(Context context)方法获取到Bitmap对象. 布局资源可以用java代码实现,或许可以研究一下android是如何解析布局文件的,也许可以有方法。

更多相关文章

  1. Android平台如何确定deconfig及dtsi的总结
  2. static 和 visibility hidden 的区别
  3. [Android从头再来]Android(安卓)JNI相关开发
  4. android Activity的四种启动模式
  5. Android(安卓)OOM ,回收布局文件中ImageView占用的内存.Bitmap O
  6. android分包原理--MultiDex
  7. Android资源加载机制
  8. Android(安卓)6.0 读写SD卡权限问题(续)
  9. [Android(安卓)SQLite]数据存储与访问 - 内部存储

随机推荐

  1. 字体图标、布局原理一级盒模型实例操作
  2. CSS固定定位及传统三行三列布局实例
  3. 字体图标引用、网页布局与元素排列、盒模
  4. 0705作业
  5. 用户注册表单和上下文选择器
  6. 一个免费开源的轻量级PHP开发框架
  7. flex容器
  8. flex容器与项目的认识和常用属性
  9. flex初体验之常用属性练习
  10. 2021.7.6表格作业,