美文网首页
Android加载外部资源

Android加载外部资源

作者: Lemon666 | 来源:发表于2020-11-06 15:26 被阅读0次
    本地存放一个APK资源包,假设路径为
    String  apk_path = "本地APK包路径";
    
    创建一个AssetManger加载本地资源包
    AssetManager assetManager = AssetManager.class.newInstance();
    Method addAssetPath = assetManager.getClass().getMethod("addAssetPath", String.class);
    addAssetPath.invoke(assetManager, apk_path);
    
    通过AssetManager获取Resource对象,后面两个参数可以直接获取当前应用的参数
    Resources resources = new Resources(assetManager, getResources().getDisplayMetrics(), getResources().getConfiguration());
    
    根据资源字符串获取对应的资源ID
    • 第一个参数:资源名称
    • 第二个参数:资源所在目录
    • 第三个参数:资源所在的包名
    包名可以通过PackageManager获取
    PackageManager mPm = getPackageManager();
    PackageInfo mInfo = mPm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
    String packageName = mInfo.packageName;
    
    int id = resources.getIdentifier("img_station_return", "drawable", packageName);
    
    根据ID获取对应数据对象
    Drawable drawable = resources.getDrawable(id);
    
    使用数据
    ivImg.setImageDrawable(drawable);
    

    重点:要获取读写权限,因为写Demo忽略了这一点,导致寻找问题的方向错误~~

    相关文章

      网友评论

          本文标题:Android加载外部资源

          本文链接:https://www.haomeiwen.com/subject/tdmtbktx.html