Android开源库-BottomDialog两种样式弹框

news/2024/7/10 20:53:39 标签: android, 开源, 仿IOS选择器, 弹窗自定义

Android开源库-BottomDialog两种样式弹框

  • 关于
    • 效果图(目前仅两种dialog,后续会增加)
    • 添加引用
    • 使用
      • 中间圆角样式
      • 中间圆角+弹窗阴影效果
      • bg_dialog_full_radius_14_white.xml

关于

  网上这种底部弹窗一大堆,写这个开源library主要还是自己后面项目集成使用方便。。仓库地址

效果图(目前仅两种dialog,后续会增加)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

添加引用

allprojects {
		repositories {
			maven { url 'https://jitpack.io' }
		}
	}
dependencies {
	        implementation 'com.github.Tobeyr1:libBottomDialog:1.0.0-alpha'
	}

使用

  这里只介绍java 版使用方法,kotin版使用可以在github的app里面看到(正常使用):

BottomAlertDialog dialog = new BottomAlertDialog()
                    .openFullScreenMask(false,R.color.color_transparent,0.1f) //是否开启全屏以及弹框透明度,设置true则无法修改dialog位置,仅限底部使用
                    .setBackGroundColor(R.color.white)
                    .setContent("Exiting out of this form will remove all record information. Would you like to exit anyway?")
                    .setConfirmBg(R.drawable.bg_button_full_green_408)
                    .setCancelBg(R.drawable.bg_button_login_full_border_black_stroke_2)
                    .setTitle("Java title")
                     //.setCancelBtnGone() //是否隐藏取消按钮
                    .setTitleColor(R.color.black)
                    .setGravityStyle(Gravity.BOTTOM)
                    .setCanceledOnTouchOutside(false)
                    .setPositiveButtonMethod("Ok",R.color.white,(d,view) ->{
                        d.dismiss();
                        return null;
                    })
                    .setNegativeButtonMethod("Cancel",R.color.black,(d,view) ->{
                        d.dismiss();
                        return null;
                    })
                    .setFragmentManager(getSupportFragmentManager())
                    ;
            dialog.show();
 BottomChoiceDialog bottomChoiceDialog = new BottomChoiceDialog(
                    arrayList,(position,value) ->{
                        switch (position){
                            case 0 :
                                Toast.makeText(this, "take photo", Toast.LENGTH_SHORT).show();
                                break;
                            case 1 :
                                Toast.makeText(this, "Select from library", Toast.LENGTH_SHORT).show();
                                break;
                            case 2 :
                                Toast.makeText(this, "View image full Screen", Toast.LENGTH_SHORT).show();
                                break;
                        }
                return null;
            });
            bottomChoiceDialog.show(getSupportFragmentManager(),"dialog");

中间圆角样式

在这里插入图片描述

 BottomAlertDialog dialog = new BottomAlertDialog()
                    .openFullScreenMask(false, R.color.color_transparent,0.1f)
                    .setBackGroundColor(R.drawable.bg_dialog_full_radius_14_white)
                    .setContent("Exiting out of this form will remove all record information. Would you like to exit anyway?")
                    .setConfirmBg(R.drawable.bg_button_full_green_408)
                    .setCancelBg(R.drawable.bg_button_login_full_border_black_stroke_2)
                    .setTitle("Java title")
                    .setTitleColor(R.color.black)
                    .setGravityStyle(Gravity.CENTER)
                    .setCanceledOnTouchOutside(false)
                    .setWidth(getScreenWidth()-dpToPx(32))//单独设置宽度
                    //.setWindowSize(getScreenWidth()-dpToPx(32),dpToPx(280)) //整体size
                    .setPositiveButtonMethod("Ok",R.color.white,(d,view) ->{
                        d.dismiss();
                        return null;
                    })
                    .setNegativeButtonMethod("Cancel",R.color.black,(d,view) ->{
                        d.dismiss();
                        return null;
                    })
                    .setFragmentManager(getSupportFragmentManager())
                    ;
            dialog.show();
            
    private int getScreenWidth(){
        return getResources().getDisplayMetrics().widthPixels;
    }

    private int getScreenHeight(){
        return getResources().getDisplayMetrics().heightPixels;
    }

    private int dpToPx(int dp){
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dp,getResources().getDisplayMetrics());
    }

中间圆角+弹窗阴影效果

在这里插入图片描述

 BottomAlertDialog dialog = new BottomAlertDialog()
                    .openFullScreenMask(false, R.drawable.bg_dialog_full_radius_14_white,0.1f)//同时使用圆角shape
                    .setBackGroundColor(R.drawable.bg_dialog_full_radius_14_white)
                    //.setCancelBtnGone() //是否隐藏取消按钮
                    .setContent("Exiting out of this form will remove all record information. Would you like to exit anyway?")
                    .setConfirmBg(R.drawable.bg_button_full_green_408)
                    .setCancelBg(R.drawable.bg_button_login_full_border_black_stroke_2)
                    .setTitle("Java title")
                    .setTitleColor(R.color.black)
                    .setGravityStyle(Gravity.CENTER)
                    .setCanceledOnTouchOutside(false)
                    .setWidth(getScreenWidth()-dpToPx(32))
                    //.setWindowSize(getScreenWidth()-dpToPx(32),dpToPx(280))
                    .setPositiveButtonMethod("Ok",R.color.white,(d,view) ->{
                        d.dismiss();
                        return null;
                    })
                    .setNegativeButtonMethod("Cancel",R.color.black,(d,view) ->{
                        d.dismiss();
                        return null;
                    })
                    .setFragmentManager(getSupportFragmentManager())
                    ;
            dialog.show();

bg_dialog_full_radius_14_white.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="14dp" />
    <solid android:color="#FFFFFF" />
</shape>

http://www.niftyadmin.cn/n/1656234.html

相关文章

seo代码优化工具_大咖带你玩转企业SEO搜索引擎优化视频

搜索引擎营销作为现代企业常见的一种网络营销方式&#xff0c;对于提升企业品牌曝光已经口碑有着重要的营销价值。本课程主要讲解的知识包括搜索引擎工作原理、SEO必备工具、关键词选择方法、网站首页/URL/TDK标签优化技巧、SEO站内优化、代码优化及外链优化等。学员通过学习可…

波兰表达式与逆波兰表达式

文章目录波兰表达式逆波兰表达式波兰表达式计算逆波兰表达式计算总结常见的算术表达式&#xff0c;称为中缀表达式&#xff0c;例如&#xff1a; 5 ( 6 – 4 / 2 ) * 3波兰表达式 波兰表达式也称为前缀表达式&#xff0c;以上面的例子为例&#xff0c;其波兰表达式为&#x…

Android在GoogleMap(百度地图)实现自定义指南针旋转与回正功能

Android在GoogleMap&#xff08;百度地图&#xff09;实现自定义指南针旋转与回正功能关于效果图实现&#xff08;这里只讲googleMap&#xff09;关于 因为项目需要&#xff0c;需要在googleMap上面自定义指南针&#xff0c;实现指南针实时根据地图方位变化转动&#xff0c;点击…

java并查集/最小生成树-kruskal算法_iOS 程序员必须掌握的核心算法有哪些?

由于我之前一直强调数据结构以及算法学习的重要性&#xff0c;所以就有一些读者经常问我&#xff0c;数据结构与算法应该要学习到哪个程度呢&#xff1f;&#xff0c;说实话&#xff0c;这个问题我不知道要怎么回答你&#xff0c;主要取决于你想学习到哪些程度&#xff0c;不过…

Android解决请求接口的一些奇葩路径参数等

Android解决请求接口的一些奇葩路径参数等关于关于 一般的接口请求类似"device/http/auth&uidxxx" 本篇主要记录开发中&#xff0c;使用retorfit请求接口遇到的如下类似问题&#xff1a; 请求参数在接口路上上面&#xff08;"device/xxxx/xxxxx/report&quo…

python怎么打印列表长度_python实现对列表中的元素进行倒序打印

1.案例要求&#xff1a; """有列表["a", "d", "f", "j","z","Z","1"]&#xff0c;对列表进行倒序,打印结果为["1","Z","z","j","f"…

Android中富文本用法包括点击事件处理

Android中富文本用法包括点击事件处理关于只需要富文本展示效果&#xff0c;不需要点击事件展示富文本加点击事件关于 最近项目需要中需要用到富文本展示及富文本点击功能&#xff0c;先去百度了一下&#xff0c;大多数的说法是如果涉及到字符串国际化问题   因为项目涉及多国…

android新闻app

制作一个基于聚合新闻数据简单的新闻APP制作简易新闻App 导航篇[1、使用FragmentViewPager TabLayout自制简易新闻 app主要框架&#xff08;一&#xff09;](https://blog.csdn.net/Tobey_r1/article/details/93221486)[2、解析聚合新闻数据&#xff0c;并显示到主界面上&#…