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();
}
}

你可能感兴趣的:(android)