有时候,我们希望将我们的Android工程提供给第三方开发者使用。这个时候,最普遍的做法,就是提供一个jar包和一堆资源文件,第三方开发者可以将资源文件拷贝到Android工程的相应目录下,同时引用我们提供的jar包,就可以使用我们提供的相应API了。

需要特别注意的是,以jar包和资源包方式提供给第三方开发者,我们的工程的代码中就不能使用类似于R.layout.main、R.string.name等等这样的方式来引用资源了。

为此,我们就不能直接使用R文件,而是要通过字段名称来动态的获取资源的id,再来使用。

以下封装了一个类,可以通过字段名称动态获取id。

package com.arui.util;import android.content.Context;public class ResourceUtil {public static int getLayoutId(Context paramContext, String paramString) {return paramContext.getResources().getIdentifier(paramString, "layout",paramContext.getPackageName());}public static int getStringId(Context paramContext, String paramString) {return paramContext.getResources().getIdentifier(paramString, "string",paramContext.getPackageName());}public static int getDrawableId(Context paramContext, String paramString) {return paramContext.getResources().getIdentifier(paramString,"drawable", paramContext.getPackageName());}public static int getStyleId(Context paramContext, String paramString) {return paramContext.getResources().getIdentifier(paramString,"style", paramContext.getPackageName());}public static int getId(Context paramContext, String paramString) {return paramContext.getResources().getIdentifier(paramString,"id", paramContext.getPackageName());}public static int getColorId(Context paramContext, String paramString) {return paramContext.getResources().getIdentifier(paramString,"color", paramContext.getPackageName());}}

当然,如果能够将资源文件也都写入jar包,对于第三方开发者来说,是最方便的。如果想做到这一点,就必须完全在代码中处理布局、图片资源等等,相对来说比较麻烦。如果UI等元素非常的少,值得尝试。

---------------------------------------------------------------------------

GL(arui319

http://blog.csdn.net/arui319

<本文可以转载,但是请保留以上作者信息。谢谢。>

---------------------------------------------------------------------------


更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android(安卓)Studio 2.2 预览 - 新的UI设计师和约束布局
  6. Android音频开发(6):使用 OpenSL ES API(上)
  7. Android命令行启动程序正确使用技巧解析
  8. busybox应用于android系统
  9. Android(安卓)wps文件下载、预览

随机推荐

  1. 实现三星S3蒲公英水波纹效果(三)——Acti
  2. Android(安卓)Bundle传递对象
  3. android 读取资源字符串的 方法
  4. Android(安卓)跑马灯效果
  5. 关于android中进行http通信的几个问题
  6. 用Android代码实现自动打开USB调试
  7. android onTouchEvent和setOnTouchListen
  8. android ICS 4.0.3 报 java.lang.Illegal
  9. Android国际化
  10. android 被强制横屏,Activity重启问题解决