安卓(Android) 怎么获取资源(Resource)

2019年10月19日12:31:40安卓(Android) 怎么获取资源(Resource)已关闭评论 215 942字阅读3分8秒

1.简介

安卓(Android) 怎么获取资源(Resource)?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */


import java.io.File;
import java.lang.ref.WeakReference;

import java.util.HashMap;
import android.content.Context;
import android.content.res.AssetManager;
import android.content.res.Resources;

public class Main {
    private static final HashMap<String, WeakReference<Resources>> resources = new HashMap<String, WeakReference<Resources>>();

    public static Resources getResources(Context ctx, File file)
            throws Exception {
        String path = file.getAbsolutePath();
        WeakReference<Resources> wr = resources.get(path);
        if (wr != null) {
            Resources res = wr.get();
            if (res != null) {
                return res;
            }
        }

        AssetManager am = (AssetManager) AssetManager.class.newInstance();
        am.getClass().getMethod("addAssetPath", String.class)
                .invoke(am, file.getAbsolutePath());

        Resources superRes = ctx.getResources();
        Resources res = new Resources(am, superRes.getDisplayMetrics(),
                superRes.getConfiguration());

        resources.put(path, new WeakReference<Resources>(res));
        return res;
    }
}

 
继续阅读
编程十万个怎么办