【Android】共享APK中的资源文件

1、使用相同的android:sharedUserId

2、使用下面的类

package com.lemote.ebag.Utils;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;

public class ResourceUtils {
	private static ResourceUtils resourceUtils = null;
	private Context mContext;
	private String mPackagename;

	private ResourceUtils() {

	}

	public static ResourceUtils getInstance() {
		if (resourceUtils == null) {
			resourceUtils = new ResourceUtils();
		}
		return resourceUtils;
	}

	public String getString(String filename) {
		if (mContext != null)
			return mContext.getResources().getString(
					mContext.getResources().getIdentifier(filename, "string",
							mContext.getPackageName()));
		return null;
	}

	public Drawable getDrawable(String filename) {
		if (mContext != null)
			return mContext.getResources().getDrawable(
					mContext.getResources().getIdentifier(filename, "drawable",
							mContext.getPackageName()));
		return null;
	}

	public boolean checkApkExist(Context context, String packageName) {
		if (packageName == null || "".equals(packageName))
			return false;
		try {
			ApplicationInfo info = context.getPackageManager()
					.getApplicationInfo(packageName,
							PackageManager.GET_UNINSTALLED_PACKAGES);
			return true;
		} catch (NameNotFoundException e) {
			return false;
		}
	}

	public void init(Context context, String packagename) {
		if (this.mPackagename != packagename) {
			try {
				mContext = context.createPackageContext(packagename,
						Context.CONTEXT_IGNORE_SECURITY);
			} catch (NameNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		this.mPackagename = packagename;
	}
}

3、调用方法

ResourceUtils resourceUtils = ResourceUtils.getInstance();
		resourceUtils.init(mContext, "com.lemote.about");

		icon.setImageDrawable(resourceUtils.getDrawable( "ebag"));
		tx_version.setText(resourceUtils.getString( "about_version"));
		tx_appname.setText(resourceUtils.getString( "about_appname"));
		about_company_ch.setText(resourceUtils.getString( "about_company_ch"));
		about_company_en.setText(resourceUtils.getString( "about_company_en"));
其他资源的获取  自己在工具类中添加 


转载于:https://my.oschina.net/gejw0623/blog/155472

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值