Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验.
只需要两行代码, 就可以实现换肤, 你值得拥有!!!
第一行: 在Application的onCreate中初始化
SkinCompatManager.init(this).loadSkin();
第二行: 继承自SkinCompatActivity
public class BaseActivity extends SkinCompatActivity {}
就这么简单, 你的APK已经拥有了强大的换肤功能.
skin-app // 换肤demo app
skin-night // 换肤demo 夜间模式
skin-support // 换肤框架, 基础控件支持
skin-support-design // 换肤框架, Material Design 支持
-
- 支持开发者标记不换肤控件
-
-
解决RecyclerView中item无法回收导致的OutOfMemory问题
-
关闭Debug Log
-
-
- View
- Button
- Spinner
- SeekBar
- CheckBox
- EditText
- TextView
- RatingBar
- ImageView
- ProgressBar
- ImageButton
- RadioButton
- FrameLayout
- LinearLayout
- RelativeLayout
- CheckedTextView
- AutoCompleteTextView
- MultiAutoCompleteTextView
- android.support.v7.widget.Toolbar
可以直接下载源码, 选择需要的module依赖:
git clone https://github.com/ximsfei/Android-skin-support.git
也可以直接添加依赖, 最新版本选择, 请查看更新日志
compile 'skin.support:skin-support:1.1.0' // skin-support 基础控件支持
compile 'skin.support:skin-support-design:0.1.0' // skin-support-design material design 控件支持
@Override
public void onCreate() {
super.onCreate();
SkinCompatManager.init(this).loadSkin(); // 应用启动时初始化换肤框架并且加载当前(保存在SharedPreferences中)皮肤库
}
让所有需要换肤的Activity继承自skin.support.app.SkinCompatActivity
.
public class BaseActivity extends SkinCompatActivity {}
如果项目中有特殊需求, 例如, 股票控件: 控件颜色始终为红色或绿色, 不需要随着模式切换而换肤, 可以在布局文件中对应的控件上添加skinSupport属性.
xmlns:skin="http://schemas.android.com/apk/res-auto"
skin:skinSupport="false"
默认不填, 该值为true.
// 指定皮肤插件
SkinCompatManager.getInstance().loadSkin("new.skin"[, SkinLoaderListener]);
// 恢复应用默认皮肤
SkinCompatManager.getInstance().restoreDefaultTheme();
要点:
-
实现SkinCompatSupportable接口
-
applySkin方法中实现换肤操作
-
getSkinSupport方法返回true, 控件支持换肤; 返回false, 不进行换肤.
-
在构造方法中解析出需要换肤的resId
-
自定义View可以直接继承自SkinCompatView, SkinCompatLinearLayout等已有控件
eg: CustomTextView
-
不想继承自已有控件
eg: CustomTextView2
-
需要换肤自定义属性
// 需要换肤AutoCompleteTextView的R.attr.popupBackground属性
-
需要使用第三方库控件怎么办
// 需要使用https://github.com/hdodenhof/CircleImageView 控件, 并且要支持换肤
皮肤工程包名不能和宿主应用包名相同.
例如:
宿主包名: com.ximsfei.skindemo
夜间模式: com.ximsfei.skindemo.night
例如 APK中窗口背景颜色为
colors.xml
<color name="background">#ffffff</color>
那么夜间模式你可以在skin-night工程中设置
colors.xml
<color name="background">#000000</color>
将打包生成的apk文件, 重命名为'xxx.skin', 防止apk结尾的文件造成混淆.
如有任何疑问, 可扫码加入QQ群进行技术交流:
如果觉得换肤框架很好用, 对您有所帮助, 请随意打赏, 或者分享转发给更多朋友.
您的支持与认可, 将使我在开源的道路上越走越远, 谢谢您!
昵称 | 支付方式 | 付款时间 | 金额 | 留言 |
---|---|---|---|---|
匿名 | 微信 | 2017-02-28 23:38:46 | 1 元 | 无 |
匿名 | 支付宝 | 2017-02-28 23:42:13 | 1 元 | 无 |
匿名 | 微信 | 2017-03-01 09:39:09 | 5 元 | 感谢你的开源库 |
匿名 | 微信 | 2017-03-03 15:28:45 | 1 元 | 无 |
匿名 | 微信 | 2017-03-04 22:05:55 | 3 元 | 加油 |
-
android com.android.support:appcompat-v7源码