获取其他App中资源的方法

有时我们需要在当前的应用中获取到其他应用中的资源,例如有的应用具有换肤功能,可以额外安装皮肤包,这样一来,我们就需要从皮肤包中提取相应的资源文件,获取的方法如下所示:

try {  
    String remotePackage = "com.xxx.themepackage";  
    Context remoteContext = createPackageContext(remotePackage,  CONTEXT_IGNORE_SECURITY);  
    Resources remoteResources = remoteContext.getResources();  
    text.setText(remoteResources.getText(remoteResources.getIdentifier("application_name", "string", remotePackage)));  
    color.setTextColor(remoteResources.getColor(remoteResources.getIdentifier("delete_target_hover_tint", "color", remotePackage)));  
    image.setImageDrawable(remoteResources.getDrawable(remoteResources.getIdentifier("ic_launcher_home", "drawable", remotePackage)));  
    } catch (NameNotFoundException e) {  
        e.printStackTrace();  
}   

getIdentifier() 方法中,第一个参数是文件名,第二个参数是资源类型,第三个参数是资源所在包的包名


另外,也可以利用 Resources 的 getAssets() 方法来引用资源包中 assets 目录下的文件,如想要引用 assets 目录下的字体文件来设置字体就可以这样写:

Typeface typeface = Typeface.createFromAsset(remoteResources.getAssets(), "testFont.ttf");
text.setTypeface(typeface);










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值