如何在jar文件中使用drawable?
我尝试了什么,据我所知:
Library Project
http://developer.android.com/tools/projects/index.html#LibraryProjects,因为该库将使用使用它的应用程序进行编译。我动态加载那个jar库,这样就不行了。Picture Style
http://developer.android.com/reference/android/app/Notification.BigPictureStyle.html。但是我需要从我的库中的res目录创建一个位图。可能吗? 更多信息 我有一个从系统服务动态加载的jar文件,我希望系统服务的所有代码都在该jar中。
我想在系统服务中提供通知,为此我需要在jar中使用drawable。 我希望有一个res目录,就像每个应用程序一样,并且能够使用其中的png进行通知。
感谢每一位帮助!
答案 0 :(得分:1)
如何在jar文件中使用drawable?
JAR文件中没有可绘制的资源。 JAR中可能有图像文件,您可以尝试使用BitmapFactory
加载。任何类型的资源都 编译到APK文件中。
我动态加载该jar库
从安全角度来看,这是危险的,除非您可以保证没有人可以从您检索它的任何地方替换该JAR文件。
但是我需要从我的库中的res目录创建一个位图。可能吗?
您可以使用BitmapFactory
从JAR加载文件并将其解析为位图,然后您可以使用带有Bitmap
对象的通知相关方法,如{{1}上的那些}}
我有一个从系统服务动态加载的jar文件
除非您在自己的ROM mod中创建自己的Android版本,否则您不会创建“系统服务”。
我希望有一个res目录,就像每个应用程序一样,并且能够使用其中的png进行通知。
然后不要动态加载JAR,而是在应用程序项目中包含代码(和资源)。
简而言之,JAR与Android资源没有任何关系。
答案 1 :(得分:0)
是。在开发Android的自动GUI生成任务时遇到了这个问题。 getResourcesAsStream(@CommonsWare)是一个很好的提示,但我认为它不应该应用于其中一个类,而应该应用于系统的类加载器。 E.g:
ClassLoader loader = ClassLoader.getSystemClassLoader(); 字符串yourPathToFileInJar =“/ / / package / in / jar / fileInjar”; InputStream url = loader.getResourceAsStream(yourPathToFileInJar);
请(不要@CommonsWare)避免这样的答案:当有人在Java世界中特别提出问题时,不要这样做。