Resource 方法解析

来源:互联网 发布:excel比对两列数据 编辑:程序博客网 时间:2024/06/02 05:58

Resource 方法解析

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

String imgPath = getResources().getResourceEntryName(R.drawable.register_bg);//返回的是包名+drawable/文件名,如:com.PhotoView.org:drawable/register_bgString imgPath = getResources().getResourceName(R.drawable.register_bg);//返回包名,如com.PhotoView.orgString imgPath = getResources().getResourcePackageName(R.drawable.register_bg);//返回类型名称,如drawableString 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());
0 0
原创粉丝点击