Android 底部支付弹窗

Android 底部弹出Dialog(支付方式选择) 项目开发中经常遇到使用底部弹出Dialog 例如选择图片上传时的 本地图库 和 拍照  还有支付时的支付方式选择  下面是我写的一个支付方式选择的底部弹出 Dialog  不足之处请指出 谢谢 初始化private void initDialog() { dialog = new Dialog(this, R.style.recharge_pay_dialog); 阅读详情

实现的效果:

 

实现的思路:

1.通过继承PopupWindow自定义View来达到弹窗的弹出效果;

2.通过回调将输入的密码由弹窗传入到主界面中;

2.恩,这就够了——>有些注意点在代码中备注;

 

自定义View的代码:

 

public class BottomDialogView extends PopupWindow {
    private View dialogView;
    private EditText payPassEt;
    private Button cancelBtn, confirmBtn;
    private ImageView backDialogIv;

    public BottomDialogView(Activity context, final BottomDialogOnclickListener bottomDialogOnclickListener) {
        super(context);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        dialogView = inflater.inflate(R.layout.dialog, null);
        backDialogIv = (ImageView) dialogView.findViewById(R.id.backDialogIv);
        payPassEt = (EditText) dialogView.findViewById(R.id.payPassEt);
        cancelBtn = (Button) dialogView.findViewById(R.id.cancelBtn);
        confirmBtn = (Button) dialogView.findViewById(R.id.confirmBtn);
        backDialogIv.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                dismiss();
            }
        });
        cancelBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                dismiss();
            }
        });
        confirmBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                bottomDialogOnclickListener.onPositiveClick(payPassEt.getText().toString().trim(), BottomDialogView.this);
            }
        });


        this.setContentView(dialogView);
        this.setWidth(LayoutParams.MATCH_PARENT);
        this.setHeight(LayoutParams.MATCH_PARENT);
        this.setFocusable(true);
        this.setAnimationStyle(R.style.DialogShowStyle); //设置弹出窗体动画效果
        ColorDrawable dw = new ColorDrawable(0xb0000000);
        this.setBackgroundDrawable(dw);

        dialogView.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                int height = dialogView.findViewById(R.id.pop_layout).getTop();
                int y = (int) event.getY();
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    if (y < height) { //添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
//                        dismiss();
                    }
                }
                return true;
            }
        });

    }

}


分析:其实很简单,无法就是通过加载布局将布局装载至自定义的View中。bottomDialogOnclickListener 是自定义的回调接口,无法就是将值传递至主界面中。

 

 

主界面代码:

 

public class ShowBottomDialogAct extends AppCompatActivity {
    private Button showBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_bottom_dialog);
        showBtn = (Button) findViewById(R.id.showBtn);
        showBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showDialog();
            }
        });
    }


    private void showDialog() {
        DialogUtil.showBottomDialog(ShowBottomDialogAct.this, R.id.activity_show_bottom_dialog, new BottomDialogOnclickListener() {
            @Override
            public void onPositiveClick(String contentStr, BottomDialogView dialogView) {
                dialogView.dismiss();
            }
        });
    }

}


分析:可以看到,主界面的代码异常简单,主要是通过自定义一个帮助类来进行弹窗的显示——>因为弹窗很可能在多个界面使用,所以这种写法个人还是比较喜欢的。另外通过回调将弹窗对象给传输出来,以便在使用的时候根据网络请求的具体情况来控制弹窗的显示与取消。

 

 

帮助类的代码:

 

public static void showBottomDialog(Activity activity , int dialogLayoutId , BottomDialogOnclickListener bottomDialogOnclickListener){

        BottomDialogView bottomDialogView = new BottomDialogView(activity, bottomDialogOnclickListener);
        bottomDialogView.showAtLocation(activity.findViewById(dialogLayoutId), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); //设置窗口显示在parent布局的位置并显示
        InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);//自动打开软键盘
        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

    }


分析:两点——>1.负载布局文件;2.控制软键盘显示与关闭;

 

 

另外一个很重要的点,花了不少时间才去发现:弹窗弹起的时候,软键盘一般是会覆盖一部分输入框的,这是非常不好看的。之所以demo中没有出现这种情况,是通过了特殊的处理——>将整个弹窗布局外包一层ScrollView,这样方便软键盘弹起找到输入框焦点时会将整个布局往上顶。但,这还不够,一定要在ScrollView中设置一个属性:

 

 android:fillViewport="true"


最后,GitHub地址>>

 

 

 

 

Android支付宝微信银联等底部弹窗dialog(源码分析+例子) Android支付宝微信银联等底部弹窗dialog(源码分析+例子) 本博文做技术分享存档使用,涉及技术点包含动画,自定义控件,三方支付SDK等,本文相对简单直接贴相关代码,有不懂的请留言,博主看到会及时解答,谢谢理解.本文源码下载 文章目录Android支付宝微信银联等底部弹窗dialog(源码分析+例子)一 MainActivity核心代码二 activity_main.xml 布局核心代... 阅读详情

相关推荐

UniApp实战:优雅解决遮罩弹窗下的滚动穿透难题

本文深入剖析了UniApp开发中常见的滚动穿透问题,特别是在微信小程序等平台的表现。文章提供了两种优雅的解决方案:使用page-meta组件进行页面级控制,以及利用wx.setPageStyle API进行动态设置,有效隔离弹窗与底层页面的滚动事件,提升用户体验。

sam99的博客 510

Android——完全自定义 底部弹出支付页面

完全轻松自定义底部弹窗

GSLS 2007

uniapp [全端兼容] - 详细实现日期时间 “范围“ 弹框选择器功能,底部弹窗式选择日期范围组件(开始日期和结束日期,选择2个年月日),支持自定义返回数据格式、限制最大最小日期等(详细示例代码)

uni-app,微信小程序,支付宝小程序,安卓app,苹果ios,nvue,H5网页网站,日期时间选择器,范围选择,日期时间范围选取,uniApp日期范围选择插件,弹框式范围选取,日历时间范围,选择两个日期时间,uniapp选择开始和结束日期,年月日,月份,年份,Uniapp日期时间选择插件支持更多选择方式日期范围日期时间范围,picker日期选择器和时间选择器的用法,日期选择器,uniApp微信小程序日期时间段选择(精确到年月日时分),时间段选择限制(开始日期结束日期相互限制),日期选择组件单日/日期

🏆 前端领域优质创作者 5374

android-实现支付宝支付从底部弹窗效果

前言 我们再用支付宝支付的时候,会从底部弹上来一个对话框,让我们选择支付方式等等,今天我们就来慢慢实现这个功能 效果图 实现 主界面很简单,就是一个按钮,点击后跳到支付详情的Fragment中 package com.example.hfs.alipayuidemo; import android.support.v7.app.AppCompatActivity; import andr...

jasonhongcn的专栏 1170

Android实现支付宝支付从底部弹窗效果

Android实现支付宝支付从底部弹窗效果

Android支付底部弹窗自定义dialog

Android支付底部弹窗自定义dialog,包含完整自定义控件,以及相应进入退出动画

Android 底部弹出自定义Dialog(支付宝微信选择)

前言 Android 底部弹出自定义Dialog(支付宝微信选择) 之前做过很多 一直没有总结过 这次做一个总结 加深一下记忆 为别人留下一个可参考的方案 不多说 直接上gif效果图 UI希望の效果 实际の实现效果Gif 代码总结 首先写一个dialogDemo继承Dialog 需要实现构造方法 选择2参的即可 传一个上下文和一个dialog主题 剩下的就按照流程写 /** * @author lyudony * @date 2020/8/4. * description:支付方式dialog

吕氏春秋i 1332

android 支付宝弹出付款方式以及输入六位密码,输完自动关闭,回调密码

android 支付宝弹出付款方式以及输入六位密码,输完自动关闭,回调密码 超值,直接导入就可以使用

android 支付系统 demo,微信APP支付Android Demo详解

根据这篇文章的步骤,可以让你的账号跑通android app的微信支付.前提:已经有开通微信支付,有商户号,密钥.点击图片可以打开大图查看.1. 下载Android app Demo 2. 安装IDE2.1 我用的是adt bundle,不过adt bundle已经不是google官方支持的软件了,官方现在支持android studioadt bundle windows 64位的下载地址: ...

weixin_34206129的博客 671

Android---防支付宝支付密码输入弹窗

防支付宝支付密码输入弹窗, (1),封装成dialog (2),在构造方法中设置样式 (3),密码的存储和删除是操作字符串

仿支付宝支付弹框效果

自定义view方式实现仿支付宝支付弹框效果,dialog是参照系统dialog方式实现的万能dialog

Android底部弹窗的一些实现,Android实现底部支付弹窗效果

Android底部支付弹窗实现的效果:实现的思路:1.通过继承PopupWindow自定义View来达到弹窗的弹出效果;2.通过回调将输入的密码由弹窗传入到主界面中;2.恩,这就够了——>有些注意点在代码中备注;自定义View的代码:public class BottomDialogView extends PopupWindow {private View dialogView;priva...

weixin_39840729的博客 414

SAP FICO - 外币交易实战:汇率类型配置与货币换算率管理

月底关账前的外币评估就像财务人的"期末考",OB59配置就是你的备考方案。最低值原则(Lowest value principle)最保守。它会比较原始汇率与评估日汇率,取不利方向确认损失。适合风险厌恶型企业,我在制造业客户中应用最多。重估法(Revalue only)更反映市场现状。无论盈亏都按最新汇率调整,适合交易性金融资产处理。有个基金公司客户就靠这个方法及时反映了外汇波动收益。最小差异金额(Minimum difference)是防骚扰设置。

weixin_42524708的博客 358

android底部支付,Android实现底部支付弹窗效果

Android底部支付弹窗实现的效果:实现的思路:1.通过继承PopupWindow自定义View来达到弹窗的弹出效果;2.通过回调将输入的密码由弹窗传入到主界面中;2.恩,这就够了――>有些注意点在代码中备注;自定义View的代码:public class BottomDialogView extends PopupWindow {private View dialogView;priva...

weixin_33421065的博客 437

项目管理——14规划绩效域论文套路

规划绩效域论文套路

Flee Elf 1153

21、使用 FastHenry 进行片上电感器的模拟与参数预测

本文介绍了使用 FastHenry 对片上电感器进行模拟和参数预测的方法。讨论了 FastHenry 的适用场景、线圈几何形状的选择与离散化方法,以及如何考虑模拟中的寄生效应。同时对比了 FastHenry 和 Magnet 在不同基板电阻率下的模拟精度,并提出了优化电感器设计的策略,为高效准确地预测电感参数提供了技术指导。

y9z0a1b的博客 293

android仿支付宝弹窗,实现支付宝支付从底部弹窗效果

前言我们再用支付宝支付的时候,会从底部弹上来一个对话框,让我们选择支付方式等等,今天我们就来慢慢实现这个功能效果图实现主界面很简单,就是一个按钮,点击后跳到支付详情的Fragment中package com.example.hfs.alipayuidemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundl...

weixin_39979080的博客 491

用一张分析型 CDS Query 看清争议案件新增与结案节奏:C_OpenClosedDisputeCase 深度解读

应收账款争议管理中的关键CDS视图分析 摘要:C_OpenClosedDisputeCase是SAP系统中用于监控应收账款争议案件的重要CDS视图,提供三个时间窗口(当日、近5天、当月)的新增与结案数据。该视图通过"创建vs解决"的净变化指标,帮助财务团队实时掌握争议管理趋势,特别适用于多币种跨国企业的现金流管理。其核心价值在于将争议管理从被动"救火"转变为可量化运营,通过统一汇率换算和关键日期参数,为管理层提供标准化的运营仪表盘。视图采用特权访问模式,需通过上层应用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 122

android仿支付宝弹窗,【转】MUI自定义底部弹窗自带遮罩层仿支付宝支付弹窗

[Asm] 纯文本查看 复制代码html,body{height: 100%;}.fr-tc{/* 控制弹窗高度 */height: 40%;}.fr-div-w{border-radius: 10px 10px 0px 0px;background-color: #FFFFFF;height: 100%;padding: 15px;}.fr-btn{display: block;height:...

weixin_35936375的博客 323

使用 Simulink + Simscape Electrical 实现一个变压器耦合式单相全波整流器的仿真模型

本文介绍了基于Simulink的变压器耦合式单相全波整流器建模与仿真方法。详细说明了从项目创建、模块添加、电路搭建到参数配置的完整建模过程,重点分析了整流器的效率与损耗特性,包括变压器损耗和二极管导通损耗。通过仿真展示了输入输出波形特征,并提出了选用高效元件、优化变压器设计等改进建议。该案例为电力电子系统建模提供了实用参考,有助于深入理解整流电路工作原理和性能优化方法。

amy_mhd的博客 186

YOLO11全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 561

Android弹窗开发终极方案:XPopup完整解析与实战应用

在Android应用开发中,弹窗组件是提升用户体验的重要元素。XPopup作为一款功能强大、易用性高的弹窗库,为开发者提供了完整的弹窗解决方案。无论你是需要底部菜单、全屏弹窗、图片查看器还是自定义动画效果,XPopup都能满足你的需求。 ## 🎯 为什么选择XPopup? XPopup库拥有丰富的弹窗类型和灵活的配置选项,支持多种动画效果和交互方式。相比系统自带的Dialog,XPopup提

gitblog_00518的博客 472

C-Lodop打印服务系统存在任意文件读取

C-Lodop打印服务系统存在任意文件读取

weixin_43567873的博客 2873

使用DialogFragment实现支付宝支付从底部弹出效果

使用DialogFragment实现支付宝支付从底部弹出效果

凌风1205 2226

HX711重量传感器原理图设计,已量产(压力传感器)

最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。

不脱发的程序猿 367

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PopupWindow弹出窗体

PopupWindow 显示方法 显示方法 显示位置 showAsDropDown(View anchor, int xoff, int yoff) 显示在anchor控件的下方 showAtLocation(View parent, int gravity, int x, int y) 显示在parent控件的某个位置 一.PopupWindow介绍 PopupWindo...

TimPika的博客 430

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: Android 滚动的公告栏
下一篇: Android 实现WebView点击图片查看大图列表及图片保存
ganshenml
博客等级 码龄16年 445粉丝 108原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

ganshenml

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

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

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

打赏作者

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

抵扣说明:

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

余额充值