-
Notifications
You must be signed in to change notification settings - Fork 0
Home
黄楠 edited this page Jan 14, 2020
·
9 revisions
[TOC]
-
如需查看详细的函数文档,点击进入,下载MuTool即可查看详细api文档
-
整理了常用的工具类
- 对Toast进行了二次封装
MuToast.info("ceshi");//消息toast
MuToast.success("ceshi");//成功toast
MuToast.error("ceshi");//错误toast
MuToast.warning("ceshi");//警告toastMuToast.Config.getInstance().allowQueue(flase).apply();- 可以通过MuToast.Config来进行一些属性的设定,设定完成之后需要apply()才能生效
MuToast.custom(...);- 如需额外属性设置,如图标样式等,可使用custom方法,传入参数去完成
- 对SharedPreferences进行封装
MuSP.putString(this, "avatar", "name", "nullWolf");//写入数据
MuSP.getString(this, "avatar", "name", "");//读数据
MuSP.clearPreferenceByNameAndKey(this, "avatar", "name");//清空指定xml的key值
MuSP.clearPreferenceByName(this, "avatar");//清空整个指定的xml- 对Activity进行封装
MuActivityTool.addActivity(this,getClass());//添加Activity
MuActivityTool.removeActivity(this);//移除activity
MuActivityTool.finishActivity(this);//移除activity并且finsih当前页面- 对Permissions权限进行封装
public static String[] STORAGE_PERMISSIONS = {Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO};//需要的权限
public static int REQUEST_CODE = 233;//requestCode的值
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {//进入设置 之后返回的处理
permissionsDeal();
}
}
public void permissionsDeal() {
MuPermissionsTool.requestPermission(this, REQUEST_CODE, new MuPermissionsTool.PermissionListener() {
@Override
public void onPermissionSucceed(int requestCode, List<String> grantedList) {
//权限申请成功 可跳转
}
@Override
public void onPermissionFailed(int requestCode, List<String> deniedList) {
//权限申请失败 需要再次请求 并相应弹出对话框
String[] strings = new String[deniedList.size()];
deniedList.toArray(strings);
MuPermissionsTool.requestRationalePermission(SplashActivity.this, this, strings);
}
@Override
public void onPermissionsDialogCancel() {
//对话框取消的处理
SplashActivity.this.finish();
}
}, STORAGE_PERMISSIONS);
}- 仿照微信通讯录侧边栏的自定义控件
<com.mumu.kernel.ui.view.sidebar.MuAZSidebar
android:id="@+id/activity_azsidebar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:sidebarTextColor="@color/colorPrimary" />在xml种引入此控件就行,控件自定义属性说明
<declare-styleable name="MuAZSideBar">
<!--默认字体颜色-->
<attr name="sidebarTextColor" format="color|reference" />
<!--//选中字体小字颜色-->
<attr name="sidebarChooseTextColor" format="color|reference" />
<!--//选中字体大字颜色-->
<attr name="sidebarChooseShowTextColor" format="color|reference" />
<!--//圆形背景颜色-->
<attr name="sidebarCircleBgColor" format="color|reference" />
<!--默认字体小字大小-->
<attr name="sidebarTextSize" format="dimension" />
<!--选中字体大字大小-->
<attr name="sidebarChooseShowTextSize" format="dimension" />
<attr name="sidebarRadius" format="dimension" />
<!--圆的半径-->
<attr name="sidebarBallRadius" format="dimension" />
</declare-styleable>需要自定义属性秩序按照app:sidebarTextColor="@color/colorPrimary"这种方式取自定义
MuAZSidebar sidebar = findViewById(R.id.activity_azsidebar);
sidebar.setOnTouchLetterChangeListener(new MuAZSidebar.OnTouchLetterChangeListener() {
@Override
public void onLetterChange(String letter) {
Log.i("点击", "onLetterChange: " + letter);
}
});触摸事件,直接调用setOnTouchLetterChangeListener即可,会返回触摸的letter
sidebar.setLetters(List<String>);可以使用setLetters自定义字母集合,默认为从A-Z和其他(#)和收藏(☆)
- 文件工具类
| 方法 | 用途 |
|---|---|
| File getSDCardRootPath() | 得到SD卡根目录 |
| boolean fileExists(@NonNull String filePath) | 判断该路径文件是否存在 |
| boolean createOrExistsDir(@NonNull String dirPath) | 判断目录是否存在,不存在则判断是否创建成功 |