Skip to content
黄楠 edited this page Jan 14, 2020 · 9 revisions

[TOC]

前言

  • 如需查看详细的函数文档,点击进入,下载MuTool即可查看详细api文档

  • 整理了常用的工具类

一、MuToast

  • 对Toast进行了二次封装

1.基本使用

MuToast.info("ceshi");//消息toast
MuToast.success("ceshi");//成功toast
MuToast.error("ceshi");//错误toast
MuToast.warning("ceshi");//警告toast

2.特殊使用

MuToast.Config.getInstance().allowQueue(flase).apply();
  • 可以通过MuToast.Config来进行一些属性的设定,设定完成之后需要apply()才能生效
MuToast.custom(...);
  • 如需额外属性设置,如图标样式等,可使用custom方法,传入参数去完成

二、MuSP

  • 对SharedPreferences进行封装

1.基本使用

MuSP.putString(this, "avatar", "name", "nullWolf");//写入数据
MuSP.getString(this, "avatar", "name", "");//读数据
MuSP.clearPreferenceByNameAndKey(this, "avatar", "name");//清空指定xml的key值
MuSP.clearPreferenceByName(this, "avatar");//清空整个指定的xml

三、MuActivityTool

  • 对Activity进行封装

1.基本使用

MuActivityTool.addActivity(this,getClass());//添加Activity
MuActivityTool.removeActivity(this);//移除activity
MuActivityTool.finishActivity(this);//移除activity并且finsih当前页面

四、MuPermissionsTool

  • 对Permissions权限进行封装

1.基本使用

 	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);
    }

五、MuAZSidebar

  • 仿照微信通讯录侧边栏的自定义控件

1.基本使用-xml

<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"这种方式取自定义

2.基本使用-Activity/Fragment

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和其他(#)和收藏(☆)

六、MuFileTool

  • 文件工具类

6.1 常用方法

方法 用途
File getSDCardRootPath() 得到SD卡根目录
boolean fileExists(@NonNull String filePath) 判断该路径文件是否存在
boolean createOrExistsDir(@NonNull String dirPath) 判断目录是否存在,不存在则判断是否创建成功