hongyangandroid / changeskin Goto Github PK
View Code? Open in Web Editor NEW基于插件式的Android换肤框架,支持app内和或者外部插件式提供资源的换肤方案,无需重启Activity。[仅供参考原理,暂不维护]
License: Apache License 2.0
基于插件式的Android换肤框架,支持app内和或者外部插件式提供资源的换肤方案,无需重启Activity。[仅供参考原理,暂不维护]
License: Apache License 2.0
如果控件直接使用View,通常分割线等常用是方法定义,定义背景色,换肤时View控件没有作用。
如果使用了谷歌的databinding,不能实现换肤操作
比如在作者提供DEMO MainActivity的DrawerLayout下,把background中的图片背景换成skin_开头的颜色资源(3个(skin_test,skin_test_red,skin_test_green)) 切换时 背景不变主题,listview背景也是有同样的问题。
另外Jcenter是否没有审核过呢?直接引入貌似不行
什么时候兼容一下
try
{
//public View createView
// (View parent, final String name, @NonNull Context context, @NonNull AttributeSet attrs)
if (sCreateViewMethod == null)
{
Method methodOnCreateView = delegate.getClass().getMethod("createView", sCreateViewSignature);
sCreateViewMethod = methodOnCreateView;
}
Object object = sCreateViewMethod.invoke(delegate, parent, name, context, attrs);
view = (View) object;
} catch (NoSuchMethodException e)
{
e.printStackTrace();
} catch (InvocationTargetException e)
{
e.printStackTrace();
} catch (IllegalAccessException e)
{
e.printStackTrace();
}
这里的代码为什么用发射创建而不是用 直接调用delegate.createView 呢?如下
view = delegate.createView(parent, name, context, attrs);
import android.support.v7.internal.app.AppCompatViewInflater;
提示找不到这个类,咋解决哈。。谁知道
自定义控件能不能设置换肤,哪位大佬有好的方案推荐下!
This app show many warning : "No package identifier when getting value for resource number 0x00000000". Can you help me resolve it?
This is sample code :
_```
public static Drawable getThemeDrawable(Context context, String name, int defaultDrawable) {
try {
return SkinManager.getInstance().getResourceManager() == null || SkinManager.getInstance().getResourceManager().getDrawableByName(name) == null ? ContextCompat.getDrawable(context, defaultDrawable) : SkinManager.getInstance().getResourceManager().getDrawableByName(name);
} catch (Exception ex) {
}
return ContextCompat.getDrawable(context, defaultDrawable);
}
代码中给view设置的资源,有一些view是通过代码生成的,而且这种控件多数是项目公用的模块,比如头部模块等
Hola! @KennethYo has created a ZenHub account for the hongyangAndroid organization. ZenHub is the leading team collaboration and project management solution built for GitHub.
To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.
ZenHub adds a series of enhancements directly inside the GitHub UI:
Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @KennethYo.
手机为魅蓝Note 在我下载并安装皮肤包之后,皮肤包并不是在SkinPkgPath,点击更换皮肤时仍然提示皮肤更换成功。。。
最近做该方案换肤测试,发现使用时会重复添加相同的View
public View onCreateView(View parent, String name, Context context, AttributeSet attrs){ ....... if (view == null) { Log.e("linbin","888888"); view = createViewFromTag(context, name, attrs); } } .......
这里是什么情况下view == null呢
我clone代码后无法编译,修改build.gradle的插件加载顺序修改了插件版本为最新版本后,drawable中有个文件名大写了,修改文件名后可以构建了。
( classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0')。
然后就是第三个item和插件式换肤无效果。
如。在有得时候,设置了 button的背景为空,就会出现了
程序刚运行时,快速跳转到其他activity,过没多久后会自动退回主activity,找不到原因?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.