Android实现更换皮肤功能
16lz
2021-01-23
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();
}
}
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer