# MagpieX **Repository Path**: zhouzhuo0810/MagpieX ## Basic Information - **Project Name**: MagpieX - **Description**: A Android Develop Framwork - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-01-07 - **Last Updated**: 2026-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![](https://jitpack.io/v/com.gitee.zhouzhuo0810/MagpieX.svg)](https://jitpack.io/#com.gitee.zhouzhuo0810/MagpieX) [![License](https://img.shields.io/badge/License%20-Apache%202-337ab7.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![MinSdk](https://img.shields.io/badge/MinSDK-17-orange.svg)](https://android-arsenal.com/api?level=17) # 已转移到码云 gitee [https://gitee.com/zhouzhuo0810/MagpieX](https://gitee.com/zhouzhuo0810/MagpieX) # MagpieX 一个 Android 快速开发框架。 ### 怎么用 ``` allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` ``` implementation 'com.gitee.zhouzhuo0810:MagpieX:x.x.x' ``` 如果添加上述依赖,则会自动依赖如下第三方库: ``` api 'androidx.appcompat:appcompat:1.7.1' //RecyclerView api 'androidx.recyclerview:recyclerview:1.4.0' //Material Design api 'com.google.android.material:material:1.13.0' //EventBus api 'org.greenrobot:eventbus:3.2.0' //Glide api 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' //RxJava2 api 'io.reactivex.rxjava3:rxjava:3.0.9' //RxAndroid2 api 'io.reactivex.rxjava3:rxandroid:3.0.0' //RxBinding api 'com.jakewharton.rxbinding4:rxbinding:4.0.0' //Retrofit2 api 'com.squareup.retrofit2:retrofit:2.9.0' //Retrofit2+RxJava2 api 'com.squareup.retrofit2:adapter-rxjava3:2.9.0' //Retrofit2+Gson api 'com.squareup.retrofit2:converter-gson:2.9.0' //OkHttp打印请求数据 api 'com.squareup.okhttp3:logging-interceptor:3.12.12' //OkHttp进度监听 ProgressManager // api 'me.jessyan:progressmanager:1.5.0' api 'com.github.JessYanCoding:ProgressManager:v1.5.0' //ToastUtils api 'com.github.getActivity:ToastUtils:11.2' //ConstraintLayout api 'androidx.constraintlayout:constraintlayout:2.2.1' // 设备兼容框架:https://github.com/getActivity/DeviceCompat implementation 'com.github.getActivity:DeviceCompat:2.3' // 权限请求框架:https://github.com/getActivity/XXPermissions implementation 'com.github.getActivity:XXPermissions:28.0' ``` 需要更新三方库从这里搜索: https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout #### 屏幕适配配置 - 在你的 AndroidManifest.xml 文件中的 application 标签中添加如下配置. ```xml ``` - 在你的自定义 Application 继承 BaseApplication ,并在 onCreate 方法中添加如下代码. ```java public class MyApplication extends BaseApplication { private Map mSupportLanguages; @Override public void onCreate() { super.onCreate(); //初始化8.0通知渠道 NoticeUtil.initNoticeChannel("您的渠道id", "您的渠道名称", "您的渠道描述", 0, true); } @Override public boolean shouldSupportMultiLanguage() { return true; } @Override public Map getSupportLanguages() { if (mSupportLanguages == null) { mSupportLanguages = new HashMap<>(); mSupportLanguages.put(MyCons.LANGUAGE_CH_SIMPLE, Locale.SIMPLIFIED_CHINESE); mSupportLanguages.put(MyCons.LANGUAGE_CH_COMPLEX, Locale.TRADITIONAL_CHINESE); mSupportLanguages.put(MyCons.LANGUAGE_EN, Locale.ENGLISH); mSupportLanguages.put(MyCons.LANGUAGE_VI, new Locale("vi")); } return mSupportLanguages; } } - 注意 styles 文件中 AppTheme 必须继承 `MagpieTheme` 或者 `MagpieTheme.NoActionBar`. ```xml ``` - 最后注意所有布局中使用 px 作为尺寸单位,包括字体大小. - 如果你的 Activity 不继承 BaseActivity, 那你必须在 Activity 的 onCreate 方法的 setContentView 后面调用 `SimpleUtil.resetScale(this);` and `SimpleUtil.scaleView(getWindow().getDecorView());`。 - 如果你的 Fragment 不继承 BaseFragment, 那你必须在 Fragment 的 onViewCreated 方法的 inflate 后面调用 `SimpleUtil.scaleView(view);`。 - 如果你的列表适配器不继承 LvBaseAdapter or RvBaseAdapter, 那么你必须在创建完 ViewHolder 后,对 ViewHolder的view进行缩放。 `SimpleUtil.scaleView(view);`. - 如果你使用自定义View,涉及到尺寸计算的时候,可以调用如下方法计算缩放后的值。 `SimpleUtil.getScaledValue(int);`。 #### 工具类简介 - [BaseUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/BaseUtil.java) > 核心工具类,持有 application 对象。 - [SimpleUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/SimpleUtil.java) > 常用工具类,包括了屏幕适配和资源获取等相关方法。 - [ApiUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ApiUtil.java) > RxJava2+Retrofit2+OkHttp3 Api对象初始化工具. - [LanguageUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/LanguageUtil.java) > 多语言切换工具. - [KeyboardUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/KeyboardUtil.java) > 键盘操作工具. - [ApkUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ApkUtil.java) > 安装 APK 工具. - [BarUtils](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/BarUtils.java) > 状态栏操作工具类。 - [SpUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/SpUtil.java) > SharedPreferences 操作工具类。 - [StrUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/StrUtil.java) > 字符串操作工具类。 - [FileUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/FileUtil.java) > 文件操作工具类。 - [DateUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/DateUtil.java) > 日期转换工具类。 - [RxHelper](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/RxHelper.java) > RxJava 倒计时,轮训,异步任务工具类。 - [CrashUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/CrashUtil.java) > UncaughtExceptionHandler 异常捕获工具类。 - [CopyUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/CopyUtil.java) > 剪切板工具类。 - [ImageUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ImageUtil.java) > 图片操作工具类。 - [ToastUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ToastUtil.java) > 吐司工具类。 - [NoticeUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/NoticeUtil.java) > 通知工具类。 - [NumberUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/NumberUtil.java) > 数字转换工具类。 - [ColorUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ColorUtil.java) > 颜色处理工具类. - [EditUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/EditUtil.java) > 输入框相关操作工具类. - [FontUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/FontUtil.java) > 设置定义字体. - [AssetsUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/AssetsUtil.java) > Assets 内容转 String 工具. - [ShellUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ShellUtil.java) > Shell 操作工具. - [NetworkUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/NetworkUtil.java) > 网络状态工具. - [CRC16](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/CRC16.java) > CRC16 校验工具类. - [CollectionUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/CollectionUtil.java) > 集合操作工具类。 - [ByteUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ByteUtil.java) > 字节操作工具类. - [RandomUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/RandomUtil.java) > 随机数生成工具. - [PackageUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/PackageUtil.java) > 检查 app 是否安装,获取 app 版本号等。 - [ShareUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/ShareUtil.java) > 分享文本和文件的工具类。 - [DrawableUtil](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/utils/DrawableUtil.java) > Drawable相关工具类. #### 框架包含的控件 - [Indicator](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/Indicator.java) > ViewPager 顶部导航控件. - [Indicator2](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/Indicator2.java) > ViewPager2 顶部导航控件. - [TabBar](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/TabBar.java) > 底部导航控件. - [TitleBar](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/TitleBar.java) > 标题栏控件. - [MarkView](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/MarkView.java) > 自定义角标控件. - [SimpleSpinner](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/SimpleSpinner.java) > 下拉操作控件。 - [ShineTextView](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/ShineTextView.java) > 多种颜色闪烁的TextView。 - [ScrollListRecyclerView](https://gitee.com/zhouzhuo0810/MagpieX/blob/master/magpiex/src/main/java/me/zhouzhuo810/magpiex/ui/widget/ScrollListRecyclerView.java) > 自动滚动的 RecyclerView。 ### 日志过滤标签说明 - PrintAdapterName : Adapter 创建时打印类名 - PrintActivityName : Activity 可见时打印类名 - PrintFragmentName : Fragment 可见时打印类名 ### 全局属性配置说明 ``` ``` ### 更新日志 [UPDATE.md](UPDATE.md) ### Proguard see [app/proguard-rules.pro](app/proguard-rules.pro) ### Thanks [AndroidUtilCode](https://github.com/Blankj/AndroidUtilCode) [AndroidScreenAdaptation](https://github.com/yatoooon/AndroidScreenAdaptation) ### License ``` Copyright © zhouzhuo810 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ```