Scaffold——内置页面

30 阅读2分钟

Scaffold是一个脚手架项目。如果你新开始一个项目,可以从本项目开始,项目介绍传送门,仓库传送门

本文介绍项目内的一些内置页面。

二维码识别

效果图

Screenshot_2023-04-11-11-08-56-585_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-09-32-902_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-09-28-525_com.vgaw.scaffolddemo.jpg

功能介绍

  1. 打开页面检测相机权限;
  2. 识别到亮度过暗,提示打开闪光灯;

使用方法

  1. 打开二维码识别界面:
ScanAc.startActivityForResult(activity或者fragment, requestCode)
  1. 二维码识别成功在onActivityResult中回调,intent中取值“qr_msg”:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == REQUEST_CODE_SCAN) {
            // 识别结果
            val qrMsg = data?.getStringExtra("qr_msg")
        }
    }
}

拍照/相册选择照片

功能介绍

  1. 拍照/选择相册照片;
  2. 设置裁剪配置,可指定输出图片宽高;
  3. 自动压缩图片大小;

使用方法

  1. 打开拍照/相册选择界面:
ChooseImgAc.startActivityForResult(activity或者fragment, requestCode, cropConfig/*裁剪配置*/)
  1. 结果在onActivityResult中回调,intent中取值"data":
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == REQUEST_CODE_CHOOSE_IMG) {
            // 图片路径
            val filePath = data?.getStringExtra("data")
        }
    }
}

权限申请

效果图

Screenshot_2023-04-11-11-29-59-617_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-37-57-877_com.vgaw.scaffolddemo.jpg

功能介绍

  1. 申请权限时先给出dialog提示;
  2. 如果用户一再拒绝授予权限,则提示用户跳转setting页面进行手动授权;

使用方法

  1. 调用
PermissionAc.startActivityForResult(
    context或者fragment,
    requestCode,
    permissionArray/*需要申请的权限*/)
  1. 授权结果在onActivityResult中回调:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == REQ_CODE_PERMISSION) {
        if (resultCode == Activity.RESULT_OK) {
            // 所有权限已授予
            onHavePermission()
        }
    }
}

用户反馈

效果图

Screenshot_2023-04-11-11-44-16-300_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-44-26-068_com.vgaw.scaffolddemo.jpg

功能介绍

  1. 使用的是兔小巢sdk;

使用方法

  1. 替换sdk key为自己的(在文件key_strings.xml中);
  2. 打开页面:
FeedbackAc.startActivity(activity或者fragment)

图片预览

效果图

Screenshot_2023-04-11-11-48-30-591_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-48-43-614_com.vgaw.scaffolddemo.jpg

功能介绍

  1. 左右滑动切换图片;
  2. 显示当前是第几张/一共多少张;
  3. 图片支持缩放;
  4. 图片支持本地文件和网络url;
  5. 支持设置默认显示第N张图片;
  6. 点击图片显示/隐藏标题栏;

使用方法

ImgPreviewAc.startAc(activity或者fragment, imgList/*图片列表*/, selectIndex/*默认显示第几张图片*/)

基础dialog

效果图

Screenshot_2023-04-11-11-54-58-093_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-55-01-046_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-55-04-504_com.vgaw.scaffolddemo.jpg

功能介绍

  1. 使用DialogFragment方式实现;
  2. 支持属性:
    1. 图标【选填】;
    2. 标题【必填】;
    3. 描述【选填】;
    4. 2个按钮/单个按钮;

使用方法

val dialog = ScaffoldDialog.newInstance("标题", "描述", iconId/*图标资源id*/)
dialog.setOnLeftBtnClickListener { DialogUtil.dismissDialog(dialog) }
dialog.setOnRightBtnClickListener { DialogUtil.dismissDialog(dialog) }
DialogUtil.showDialog(dialog, mActivity!!.supportFragmentManager, false)

底部菜单dialog

效果图

Screenshot_2023-04-11-11-55-09-800_com.vgaw.scaffolddemo.jpg

Screenshot_2023-04-11-11-55-13-402_com.vgaw.scaffolddemo.jpg

功能介绍

  1. 使用DialogFragment实现;
  2. 标题可选;

使用方法

val dialog = BottomMenuDialog.newInstance("标题", ArrayList<String>/*菜单list*/)
dialog.showDialog(mActivity!!.supportFragmentManager)

进度dialog

效果图

Screenshot_2023-04-11-11-55-16-653_com.vgaw.scaffolddemo.jpg

使用方法

  1. 显示dialog:
ProgressDialogUtil.showDialog("描述...", fragmentManager)
  1. 关闭dialog:
ProgressDialogUtil.dismissDialog(fragmentManager)