Android常用组件整理(轮播、权限、图表、刷新、对话框、数据库)

本文整理了Android开发中常用的组件,包括轮播、动态权限申请、图表、刷新控件、对话框和数据库的选型与实现。介绍了如ViewPager2轮播、RxPermissions、AndroidUtilCode、PermissionX、PermissionsDispatcher等动态权限框架,以及MPAndroidChart图表库。此外,还涵盖了下拉刷新库SmartRefreshLayout和几种对话框实现,如DialogPlus和Material Dialogs。数据库方面,讨论了Realm、GreenDAO、LitePal和Room的特点。
摘要由CSDN通过智能技术生成

常用组件整理

前言

常用组件整理

      整理一些Android常用的框架。文章整理时间为2020年9月份。

      我这文章这段时间有点儿guy,必须关注才能查阅。是因为这文章本来不适宜传递到网上,所以我就想通过这样的方式减少他人的阅读兴趣。


整理角度

      轮播
      动态权限申请
      图表
      刷新控件
      对话框
      数据库

 §

使用组件 com.youth.banner。位于GitHub榜首,且再无敌手。度娘7成的文章都是使用的这个组件。参考GitHub地址

效果预览
  • 默认
    在这里插入图片描述

  • 画廊
    在这里插入图片描述

  • 魅族
    在这里插入图片描述

  • 头条
    在这里插入图片描述

  • 文字标题
    在这里插入图片描述

  • 数字指示器
    在这里插入图片描述

  • 外部指示器
    在这里插入图片描述

  • 仿淘宝
    在这里插入图片描述

原理简析

    封装ViewPager2,融入指示器、标题和切换动画等效果

选型原因
  • 使用了ViewPager2为基础控件 [ViewPager2介绍]
  • 支持了androidx兼容包
  • 方便了UI、Indicator自定义
  • 支持画廊效果、魅族效果
  • 兼容了水平和垂直轮播,也可以实现类似淘宝头条的效果
  • 依赖包目前只需要导入了ViewPager2
  • 内置了多种PageTransformer效果(切换的动画效果)
适用场景

    在固定区域轮换的切换文本、图片、音视频等

demo实现
public class BannerActivity extends AppCompatActivity {
    public void useBanner() {
        //--------------------------简单使用-------------------------------
        banner.addBannerLifecycleObserver(this)//添加生命周期观察者
                .setAdapter(new BannerExampleAdapter(DataBean.getTestData()))
                .setIndicator(new CircleIndicator(this));
        
        //—————————————————————————如果你想偷懒,而又只是图片轮播————————————————————————
         banner.setAdapter(new BannerImageAdapter<DataBean>(DataBean.getTestData3()) {
                    @Override
                    public void onBindView(BannerImageHolder holder, DataBean data,
                    int position, int size) {
                        //图片加载自己实现
                        Glide.with(holder.itemView)
                             .load(data.imageUrl)
                             .apply(RequestOptions.bitmapTransform(new RoundedCorners(30)))
                             .into(holder.imageView);
                    }
                })
                .addBannerLifecycleObserver(this)//添加生命周期观察者
                .setIndicator(new CircleIndicator(this));
        //更多使用方法仔细阅读文档,或者查看demo
    }
}

动态权限申请 §

动态权限申请的框架很多,感觉也各有用途。截止2020年9月16日,在GitHub上查询到一些受欢迎的框架:PermissionsDispatcher星数超过10K,RxPermissions接近10K,AndPermission超过6K,easypermissions超过8.7K,PermissionX(郭霖2020年推出的一个框架)星数暂时不及1K。另外还有我们之前用过的Blankj/AndroidUtilCode当中也有权限申请的功能。

在这里我简单展示一些权限申请框架,并说明用法。

市面上这些权限申请框架基本都是通过一个隐形的Activity或者是Fragment来展示权限申请框。通过源码可以看到一些痕迹。

选型一:RxPermissions
特点

基于RxJava打造的一个申请框架,能够配合其他Rx库使用。参考GitHub地址

示例
  • 申请多个权限
rxPermissions
    .request(Manifest.permission.CAMERA,
             Manifest.permission.READ_PHONE_STATE)
    .subscribe(granted -> {
        if (granted) {
           // All requested permissions are granted
        } else {
           // At least one permission is denied
        }
    });
  • 单独处理每个结果
rxPermissions
    .requestEach(Manifest.
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

le540850072

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值