当前位置: 首页 > news >正文

android 简单快速 自定义dialog(简单好用,不需要设置样式)

1.MyDialog代码:

public class MyDialog{private Activity activity;private ViewGroup contentView;private View view;public MyDialog(Activity activity) {this.activity=activity;contentView = activity.findViewById(android.R.id.content);view=LayoutInflater.from(activity).inflate(R.layout.dialog_layout,null);view.findViewById(R.id.tv_cancel).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dismiss();}});view.findViewById(R.id.tv_sure).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dismiss();}});}/*** 显示dialog(包含动画)*/public void show(){Animation animation= AnimationUtils.loadAnimation(activity,R.anim.dialog_in_anim);view.setAnimation(animation);contentView.addView(view);}/*** 移除dialog(包含动画)*/public void dismiss(){Animation animation= AnimationUtils.loadAnimation(activity,R.anim.dialog_out_anim);view.setAnimation(animation);contentView.removeView(view);}
}

2.res/anim 下新建 dialog_in_anim.xml 和 dialog_out_anim.xml

dialog_in_anim.xml 底部显示

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="300"android:fromYDelta="100%p"android:toYDelta="0%p" />
</set>

dialog_out_anim.xml 底部隐藏

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="300"android:fromYDelta="0%p"android:toYDelta="100%p" />
</set>

3.界面布局:dialog_layout.xml ,半透明颜色值:#80000000

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#80000000"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:background="@android:color/white"android:orientation="vertical"android:paddingStart="40dp"android:paddingTop="20dp"android:paddingEnd="40dp"android:paddingBottom="20dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginBottom="30dp"android:text="标题"android:textColor="@android:color/black"android:textSize="24sp"android:textStyle="bold" /><LinearLayoutandroid:layout_width="120dp"android:layout_height="200dp"android:layout_gravity="center"android:layout_marginBottom="20dp"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginStart="30dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:background="@android:color/darker_gray"android:gravity="center"android:paddingStart="60dp"android:paddingTop="15dp"android:paddingEnd="60dp"android:paddingBottom="15dp"android:text="关闭"android:textColor="@android:color/white"android:textSize="18sp" /><TextViewandroid:id="@+id/tv_sure"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@android:color/holo_orange_dark"android:gravity="center"android:paddingStart="60dp"android:paddingTop="15dp"android:paddingEnd="60dp"android:paddingBottom="15dp"android:layout_marginStart="20dp"android:text="确定"android:textColor="@android:color/white"android:textSize="18sp" /></LinearLayout></LinearLayout>
</FrameLayout>

4.使用:

new MyDialog(activity).show();

相关文章:

android 简单快速 自定义dialog(简单好用,不需要设置样式)

1.MyDialog代码&#xff1a; public class MyDialog{private Activity activity;private ViewGroup contentView;private View view;public MyDialog(Activity activity) {this.activityactivity;contentView activity.findViewById(android.R.id.content);viewLayoutInflate…...

JAVA代理模式梳理

什么是代理模式 代理模式&#xff1a;为其他对象提供一种代理&#xff0c;用以控制对这个对象的访问&#xff1b; 我们使用代理对象&#xff0c;可以在不修改目标对象的基础上&#xff0c;增强主业务逻辑&#xff1b;比如说我们的系统中有一个登录接口&#xff0c;我们要对这个…...

推荐几个线上兼职,每天两小时收入几十到一百

在当今数字化时代&#xff0c;居家兼职成为越来越多人的选择。借助互联网和技术的进步&#xff0c;我们能够轻松利用自己的时间和技能在网上赚取额外的收入。本文将为您介绍几个简单而有潜力的居家网上兼职小项目&#xff0c;帮助您实现财务自由。 1.千金宝库做任务赚钱 千金…...

excel封装和ddt D17

1&#xff09;excel封装 openpyxl的操作 2&#xff09;ddt 数据驱动测试 ## openpyxl的操作 1.安装&#xff1a;pip install openpyxl 2.导入 openpyxl&#xff1a; import openpyxl 3.workbook对象&#xff1a;工作簿&#xff0c;openpyxl.load_workbook() 4.sheet对象&a…...

PHP8编译安装

CentOS8编译安装PHP8 PHP&#xff0c;全称Hypertext Preprocessor&#xff08;超文本预处理器&#xff09;&#xff0c;是一种通用开源脚本语言。它特别适合于web开发&#xff0c;并能嵌入HTML中。现在主要用于PHP网站中实现动态网站功能&#xff0c;常规我们使用nginx、apache…...

3D Gaussian Splatting for Real-Time Radiance Field Rendering(慢慢啃,还是挺复杂的)

三个关键要素 从相机配准的过程中得到的稀疏点云开始&#xff0c;使用3D Gaussian表示场景; 3D Gaussian: 是连续体积辐射场能够防止不必要的空空间优化。对 3D Gaussion进行交叉优化和密度控制: 优化各向异性血方差对场景精确表示。使用快速可视感知渲染算法来进行快速的训练…...

二叉树<II>:二叉树的四种遍历方式代码实现Python3

今天我们来介绍的是二叉树的「前序」、「中序」、「后序」、「层序」四种遍历方式如何用代码实现。 还不知道这四种遍历方式原理的可以看另一篇文章&#xff1a;二叉树&#xff1c;I&#xff1e;&#xff1a;概念及二叉树的前序遍历、中序遍历、后序遍历原理 1. 相关题目 这…...

vite ts vue 项目提示 . Projects must list all files or use an include pattern.

vite ts vue 项目提示 . Projects must list all files or use an include pattern. 在引用一个 ts 的时候&#xff0c;提示如下&#xff1a; 需要在 tsconfig.node.json 文件中添加&#xff1a; {"compilerOptions": {"composite": true,"skipLibC…...

鲸鱼优化算法改进风储机组一次调频出力分配系数,以频率偏差最小为目标优化函数,结合鲸鱼算法WOA捕食过程,改进风储出力分配系数simulink与matlab联合

simulink与matlab联合 风机模糊控制 改善后的系统频率 simulink.采用风储联合数学模型...

C语言经典面试题目(七)

1、C语言中如何进行内存对齐和字节对齐&#xff1f; 在C语言中&#xff0c;内存对齐和字节对齐是为了优化内存访问速度和提高系统性能而进行的一种策略。内存对齐是指数据在内存中的存放位置必须是某个值的倍数&#xff0c;通常是数据类型的大小。字节对齐是指数据在内存中的存…...

2024华为春招Django面试题大全,最全知识点揭秘,面试必备!

为了帮助广大求职者更好地准备即将到来的面试&#xff0c;本文精心编撰了一系列涵盖InnoDB存储引擎关键知识点的面试题。这些问题不仅覆盖了InnoDB的基础知识&#xff0c;如其ACID特性、索引设计、锁机制等&#xff0c;还涵盖了性能优化、备份恢复策略等高级话题&#xff0c;旨…...

搜维尔科技:使用SenseGlove Nova手套操纵其“CAVE”投影室中的虚拟对象

创造了一种基于 PC 的创新型多边沉浸式环境&#xff0c;让参与者完全被虚拟图像和声音包围。 需要解决的挑战&#xff1a; 传统的 VR 系统往往缺乏真实的触摸反馈&#xff0c;限制了用户的沉浸感。AVR Japan 旨在通过将触觉技术融入到他们的 CAVE 系统中来应对这一挑战&#x…...

独立服务器的优势

独立服务器的优势 高性能 独立服务器提供了卓越的性能&#xff0c;因为它们不与其他用户共享资源。这使得您的网站或应用程序能够快速响应访问请求&#xff0c;并处理大量数据。 安全性 由于没有其他租户在同一服务器上&#xff0c;独立服务器的安全性更高。您可以更好地控制…...

前端框架vue的样式操作,以及vue提供的属性功能应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

【自动化测试】如何在jenkins中搭建allure

相信大家在做自动化测试过程中&#xff0c;都会用到自动化测试环境&#xff0c;目前最常见的就是通过容器化方式部署自动化测试环境&#xff0c;但对于一些测试小白&#xff0c;不是很会搭建持续集成环境&#xff0c;特别是从0-1的过程&#xff0c;需要自行搭建很多依赖环境&am…...

2.域控如何强制转移操作主机角色?使用命令如何强制转移域控的操作角色?

1.实验环境介绍 实验1:模拟5种操作主机都在DC01上的域控宕机了 (1)实验先决条件 (2)测试的方向 实验2:域控夺权实验操作 方式1:AD用户和计算机工具转移操作主机角色 (1)RID角色转移: (2)PDC角色转移 (3)基础结构操作主机角色转移 方式2:powshell命令强制…...

C# event的使用

在C#中&#xff0c;事件&#xff08;Event&#xff09;是一种特殊的成员&#xff0c;它允许类或对象以类型安全的方式向外界发出通知&#xff0c;表明某个特定的行为或状态变化已经发生。 订阅该事件的其他类可以定义处理方法来响应这些通知。 事件主要基于委托机制实现&…...

外包干了9天,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2018年我通过校招踏入了南京一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…...

Android Framework 之 Python

当然可以&#xff0c;我会尽量提供更详细的内容&#xff0c;并增加更多的例子和解释。以下是更详细的Python语言教程&#xff1a; Python语言教程 一、Python简介 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1989年底发明&#xff0c;第一个公开发行版发行于…...

【Fitten Code】“吊打“Github Copilot的国内免费代码辅助插件

&#x1f33b;个人主页&#xff1a;相洋同学 &#x1f947;学习在于行动、总结和坚持&#xff0c;共勉&#xff01; 目录 1.Github Copilot 2.Fitten Code 2.1 对话体验&#xff1a; 2.2 代码补全体验&#xff1a; 2.3 Pycharm安装方法&#xff1a; 2.4 Vscode安装方法…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...