Android实现更换皮肤功能

public static void setWidgetTheme(Context context, View view, String
resName){
        String pkgName =
PreferenceManager.getDefaultSharedPreferences(context).getString(PREF_KEY_THEME_PACKAGE,
context.getPackageName());
        Resources
themeResources = null;
        try {
            themeResources =
context.getPackageManager().getResourcesForApplication(pkgName);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
        
        if(themeResources == null){
            try {
                pkgName =
context.getPackageName();
                themeResources =
context.getPackageManager().getResourcesForApplication(pkgName);
                saveThemePackageName(context, pkgName);
            } catch (NameNotFoundException e) {
                e.printStackTrace();
            }
        }
        
        if(themeResources == null){
            return;
        }
        
        try {
            int resource_id = themeResources.getIdentifier(resName,
"drawable",
pkgName);
            
            if(resource_id != 0){
                Drawable
drawable = themeResources.getDrawable(resource_id);
                if(view != null){
                    view.setBackgroundDrawable(drawable);
                }else{
                    Log.w(TAG, "View is null!
resName = " + resName);
                }

            }
        } catch(Resources.NotFoundException e){
            e.printStackTrace();
        }
    }

猜你喜欢

转载自zhouxuebao87.iteye.com/blog/1639821
今日推荐