Resource 方法解析

Resource 方法解析

/返回的是资源文件名,如register_bg

String imgPath = getResources().getResourceEntryName(R.drawable.register_bg);

//返回的是包名+drawable/文件名,如:com.PhotoView.org:drawable/register_bg

String imgPath = getResources().getResourceName(R.drawable.register_bg);

//返回包名,如com.PhotoView.org

String imgPath = getResources().getResourcePackageName(R.drawable.register_bg);

//返回类型名称,如drawable

String imgPath = getResources().getResourceTypeName(R.drawable.register_bg);


对于换肤,网上都有示例,可以从别的皮肤安装包中读取所要的资源,
前提是你必须先持有这个资源的引用名称,像R.drawable.background(喂,这不是废话嘛)。
这个换肤的方案原理就是,自身应用的资源名称是R.drawable.background,
那皮肤包中应该也是这个名称,然后通过这个名称获取该资源在皮肤包中的具体id,代码:
 //先获取本地资源引用名称,type name是R.drawable.background中的"drawable",entry name是"background"
    String resTypeName = getContext().getResources().getResourceTypeName(id);
    String resEntryName = getContext().getResources().getResourceEntryName(id);
    //然后创建皮肤包所在应用的Context
    Context apk = getContext().createPackageContext(packageName,
            Context.CONTEXT_IGNORE_SECURITY)
    //然后就是获取皮肤包中的资源id了
    int drawavleId = apk.getResources().getIdentifier(resEntryName, resTypeName,
            apk.getPackageName());
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值