Android DiaLog全屏设置,带有叉号的弹窗,这个弹窗分为两个部分,一个是主体,另一个是关闭部分。自定义布局弹窗

1.先上图。要实现的效果图。
在这里插入图片描述

2.这是我自己实现的效果图,是不是跟效果图一摸一样
在这里插入图片描述
来看看整体效果
在这里插入图片描述

3.我把自己实现的效果图的代码写出来。如下就是我的代码
3.1首先是MainActivity类

import androidx.appcompat.app.AppCompatActivity;import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import com.example.myapplication001.R;public class MainActivity extends AppCompatActivity {private TextView tv;private Dialog bottomDialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = (TextView) findViewById(R.id.name);tv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//创建dialog,同时设置dialog主题bottomDialog = new Dialog(MainActivity.this, R.style.BottomDialog);//绘制dialog  UI视图View contentView = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog_sharetofriend_and, null);//给dialog添加viewbottomDialog.setContentView(contentView);//这里给布局的控件设置点击事件bottomDialog.getWindow().findViewById(R.id.exit).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {/*............*/bottomDialog.dismiss();}});//为绘制的view设置参数ViewGroup.LayoutParams layoutParams = contentView.getLayoutParams();//设置为全屏的宽layoutParams.width = getResources().getDisplayMetrics().widthPixels;contentView.setLayoutParams(layoutParams);//设置dialog位置bottomDialog.getWindow().setGravity(Gravity.BOTTOM);//添加进出场动画//    bottomDialog.getWindow().setWindowAnimations(R.style.BottomDialog_Animation);//允许点击外部退出dialogbottomDialog.setCanceledOnTouchOutside(true);bottomDialog.setCancelable(true);//show  dialogbottomDialog.show();}});}}

3.2这个BottomDialog的主题设置dialog的相关属性

    <!--底部弹框属性设置--><style name="BottomDialog" parent="@style/Base.V7.Theme.AppCompat.Light.Dialog"><!--无标题--><item name="android:windowNoTitle">true</item><!--键盘状态--><item name="android:windowSoftInputMode">stateUnspecified</item><!--dialog弹出时activity的背景--><item name="android:windowBackground">@android:color/transparent</item><!-- 浮于Activity之上 --><item name="android:windowIsFloating">true</item><!-- 边框 --><item name="android:windowFrame">@null</item></style>

3.3主MainActivity类的activity_main布局代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.xf.ap.MainActivity"><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="50dp"android:layout_centerInParent="true"android:layout_marginTop="100dp"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"tools:visibility="visible" /><LinearLayoutandroid:id="@+id/ff"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="你好,我在写全屏弹窗,带有叉号的弹窗"android:textColor="@color/teal_200"android:textSize="34sp" /></LinearLayout></RelativeLayout>

3.4弹窗的布局代码dialog_sharetofriend_and

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_gravity="center_horizontal|center_vertical"android:background="@android:color/transparent"><!--返回按钮--><ImageViewandroid:id="@+id/exit"android:layout_width="66dp"android:layout_height="66dp"android:layout_below="@id/imageView"android:layout_centerHorizontal="true"android:layout_marginTop="50dp"android:layout_marginBottom="100dp"android:src="@mipmap/ic6" /><ImageViewandroid:id="@+id/imageView"android:layout_width="250dp"android:layout_height="250dp"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:background="#F44336" /></RelativeLayout>

3.5叉号的图片
ic6.jpg
在这里插入图片描述

3.6你也可以参考这篇文章,这篇文章也可以实现

https://blog.csdn.net/qq_40543575/article/details/81289470

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NVR接入录像回放平台用EasyCVR打造地下车库安防:大型商居安全优选方案

一、背景分析 随着居民生活品质的提升&#xff0c;大型商业建筑和住宅小区纷纷配套建设地下停车库。但是地下车库盗窃、失火、恶意毁坏车辆、外部人员随意进出等事件频发&#xff0c;部署视频监控系统成为保障地下车库的安全关键举措。 目前&#xff0c;很多商业和住宅都会在…

阶段测试 【过程wp】

分享总结: 回顾起来,真的感慨很多呀。看着并不难啊,但难的是解题思维:如何判断该页面的关键点,快速地确定问题的核心,找到对应的解决方法。达到便捷、高效的得到结果。我们做了整整近七个半小时。在这个过程中,我发现自己的思维钝化,不太能自主高效地划分判断漏洞类型,…

【C++】<STL部分>:STL标准模板库概要

STL(standard template libaray-标准模板库)&#xff0c;是C标准库的重要组成部分&#xff0c;包含了很多常用的数据结构和算法。 在我们学习了模板的之后&#xff0c;再来看STL&#xff0c;就能知道它是C标准库中的模板类和模板函数的集合&#xff0c;作为可复用的库大大提高…

从传递函数到PID控制器

在过程控制中&#xff0c;按偏差的比例&#xff08;P&#xff0c;Proportional&#xff09;、积分&#xff08;I&#xff0c;Integral&#xff09;和微分&#xff08;D&#xff0c;Differential&#xff09;进行控制的PID控制器&#xff08;亦称PID调节器&#xff09;是应用最为…

【PVR Review】《A Review of Palmar Vein Recognition》

[1]张秀峰,牛选兵,王伟,等.掌静脉识别研究综述[J].大连民族大学学报,2020,22(01):33-37.DOI:10.13744/j.cnki.cn21-1431/g4.2020.01.007. 文章目录 1、背景2、手掌静脉识别方法2.1、传统手掌静脉图像识别方法2.2、基于深度学习的掌静脉图像识别 3、手掌静脉识别难点 1、背景 目…

vector复制耗时

CPP中的vector对象在传参给子函数时&#xff0c;如果直接传参&#xff0c;会造成复制给形参的额外耗时 如何解决这个问题呢&#xff1f; 这样定义局部函数 const vector <int>&vec可以保证传递vector对象时使用地址传递&#xff0c;并且使用const保证vector不被改变…

算法思想之双指针

文章目录 双指针字符串序列判定字符串所有整数最小和服务交换接口失败率分析分披萨最多团队 双指针 双指针是指在解决问题时使用两个指针&#xff0c;通常分别指向数组或字符串中的不同位置&#xff0c;通过移动这两个指针来解决问题的一种技巧。双指针技巧常用于解决数组、链…

学透Spring Boot — 018. 优雅支持多种响应格式

这是我的专栏《学透Spring Boot》的第18篇文章&#xff0c;想要更系统的学习Spring Boot&#xff0c;请访问我的专栏&#xff1a;学透 Spring Boot_postnull咖啡的博客-CSDN博客。 目录 返回不同格式的响应 Spring Boot的内容协商 控制器不用任何修改 启动内容协商配置 访…

ngx_os_init

定义在 src\os\unix\ngx_posix_init.c ngx_int_t ngx_os_init(ngx_log_t *log) {ngx_time_t *tp;ngx_uint_t n; #if (NGX_HAVE_LEVEL1_DCACHE_LINESIZE)long size; #endif#if (NGX_HAVE_OS_SPECIFIC_INIT)if (ngx_os_specific_init(log) ! NGX_OK) {return NGX_ERR…

深信服护网蓝初面试题

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

游戏引擎学习第206天

回顾并为当天的工作定下目标 接着回顾了前一天的进展。之前我们做了一些调试功能&#xff0c;并且已经完成了一些基础的工作&#xff0c;但是还有一些功能需要继续完善。其中一个目标是能够展示实体数据&#xff0c;以便在开发游戏逻辑系统时&#xff0c;可以清晰地查看和检查…

HTML 表单:构建交互式网页的关键元素

HTML 表单:构建交互式网页的关键元素 引言 HTML表单是构建交互式网页的核心组件之一,它允许用户与网站进行交互,提交信息、填写问卷或进行其他操作。本文将深入探讨HTML表单的基础知识、常用元素、表单验证以及如何优化表单设计,以提高用户体验和网站的可访问性。 HTML表…

Qt音频采集:QAudioInput详解与示例

1. 简介 QAudioInput是Qt Multimedia模块中用于音频采集的核心类&#xff0c;能够从麦克风等输入设备实时获取原始音频数据&#xff08;PCM格式&#xff09;。本文将通过原理讲解和代码示例&#xff0c;帮助开发者快速掌握音频采集的核心技术。 2. 核心功能 支持多种音频格式&…

下载安装Node.js及其他环境

提示&#xff1a;从Node版本降级到Vue项目运行 文章目录 下载Node.js环境配置配置环境变量 安装 cnpm&#xff08;我需要安装&#xff09;安装脚手架安装依赖安装淘宝镜像&#xff08;注意会更新&#xff09;cnpm vs npm 与新旧版本核心差异包管理器不同功能差异如何选择&#…

【后端】ORM / ODM

长期不定期更新&#xff0c;建议关注收藏点赞。 概述 ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;&#xff1a;面向关系型数据库&#xff0c;ORM将对象映射到数据库的表和行&#xff08;例如MySQL、PostgreSQL&#xff09;。ODM&#xff0…

无限滚动(Infinite Scroll)页面谷歌不收录!必须改回分页吗?

近三年&#xff0c;全球超过58%的网站采用无限滚动设计&#xff08;数据来源&#xff1a;PageTraffic 2023&#xff09; 谷歌官方数据显示&#xff0c;动态加载内容的索引失败率高达73%&#xff08;Google Webmaster Report 2022&#xff09;&#xff0c;而采用纯无限滚动的页…

手写JSX实现虚拟DOM

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

网络性能优化参数关系解读 | TCP Nagle / TCP_NODELAY / TCP_QUICKACK / TCP_CORK

注&#xff1a;本文为 “网路性能优化” 相关文章合辑。 未整理去重。 如有内容异常&#xff0c;请看原文。 TCP_NODELAY 详解 lenky0401 发表于 2012-08-25 16:40 在网络拥塞控制领域&#xff0c;Nagle 算法&#xff08;Nagle algorithm&#xff09;是一个非常著名的算法&…

玄机-应急响应-webshell查杀

题目要求&#xff1a; 要求获取四个flag webshell查杀&#xff1a; 常见的webshell&#xff1a; PHP: eval(), system(), exec(), shell_exec(), passthru(), assert(), base64_decode() ASP: Execute(), Eval(), CreateObject() JSP: Runtime.getRuntime().exec() websh…

docker存储卷及dockers容器源码部署httpd

1. COW机制 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。 如果运行中的容器修改了现有的一个已经存在的文件,那么该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本依然存在,只是已经被读写层中该文件…