课程/Android/移动开发
Android-实用的App换肤功能
-
-
最後的最後_
2017-04-22
- 修改color名称让其与插件包资源的color一致
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 注册!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 先注释掉,避免报错
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
-
**要注意的一个问题:onPostExecute()方法运行在UI线程中,而doInBackground()是运行在异步线程中的
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- **Toast依赖于looper,如果是在异步线程的话,我们需要调用Looper.prepare.
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!首先通过该notifyChangedListener()去完成真正的换肤。然后再进行回调
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- ***在调用changeSkin()方法时还可以传入一个参数:callback
作用:若皮肤是在SD卡上,我们又需要换肤,此时是需要IO操作的,也就是我们可能会异步的进行,
那么我们可以提供一个接口,在接口内提供多个回调函数,比如在onStart()中,我们可以显示一个等待框。
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 首先将LoadPulgin()方法删除
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
-
***思考一下:当我们早上将我们的app换上一套红色的皮肤,那么下午我们再次打开的时候是不是也应该是红色的皮肤。
那么应该在哪里进行设置处理呢? -- injectSkin()即onCreat()一开始启动的时候就需要检测
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- **ISkinChangedListener实际上是我们的Activity对象,其生命周期不长,也就是说对于我们的Activity产生了一个强应用
那么必然会造成内存泄漏的问题。如何解决呢?
1、创建一个List<ISkinChangedListener>对象,该对象有什么用呢?大家可以想一下,我们的Activity对于换肤都有一个
注册和反注册的关系
2、添加注册和反注册的回调。
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- onDestory()执行后将所有的强应用给消除掉
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 添加反注册声明
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 添加注册声明
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 类似于观察者模式,那么每个Activity先注册,然后反注册。
-
截图
0赞 · 0采集