欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

基于将Android工程做成jar包和资源文件的解决方法

程序员文章站 2023-12-10 22:03:16
需要特别注意的是,以jar包和资源包方式提供给第三方开发者,我们的工程的代码中就不能使用类似于r.layout.main、r.string.name等等这样的方式来引用资源...

需要特别注意的是,以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等元素非常的少,值得尝试。