android java系统弹窗的基础模板

server/2025/2/5 4:23:14/

1、资源文件

app\src\main\res\layout下增加custom_pop_layout.xml

定义弹窗的控件资源。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"><ImageViewandroid:id="@+id/customPopView"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ff000000" /><Buttonandroid:id="@+id/exampleButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="80dp"android:layout_marginStart="40dp"android:text="示例按钮"app:layout_constraintStart_toStartOf="@id/customPopView"app:layout_constraintTop_toTopOf="@id/customPopView" />
</androidx.constraintlayout.widget.ConstraintLayout>

2、java代码

CustomPopUtil初始化有下面几点:

1)获取资源文件的rootView,添加到系统管理器下,达到系统级弹窗效果,可在其他app上弹出。

2)params = new WindowManager.LayoutParams是用来设置弹窗的参数,包括大小、坐标、透明度等。后面可根据需要修改。

3)rootView.setVisibility(View.GONE)表示初始化隐藏。

4)需要弹出时,调用接口show(),如果弹出时,想要修改弹窗的界面参数,可在show接口里调用WindowManager.LayoutParams进一步定制。

java">import static android.content.Context.WINDOW_SERVICE;import android.annotation.SuppressLint;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.graphics.PixelFormat;
import android.widget.Button;public class CustomPopUtil {private View rootView;private Button exampleButton;// 可增加其他ui控件@SuppressLint("InflateParams")public void init(Context context) {rootView = LayoutInflater.from(context).inflate(R.layout.custom_pop_layout, null);WindowManager windowManager = (WindowManager) context.getSystemService(WINDOW_SERVICE);WindowManager.LayoutParams params = null;if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {params = new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,PixelFormat.OPAQUE);}windowManager.addView(rootView, params);rootView.setVisibility(View.GONE);exampleButton = rootView.findViewById(R.id.exampleButton);exampleButton.setOnClickListener(v -> {// do some logic});}public void show() {rootView.setVisibility(View.VISIBLE);}public void hide() {rootView.setVisibility(View.GONE);}
}


http://www.ppmy.cn/server/165062.html

相关文章

发布 VectorTraits v3.1(支持 .NET 9.0,支持 原生AOT)

文章目录 发布 VectorTraits v3.1&#xff08;支持 .NET 9.0&#xff0c;支持 原生AOT&#xff09;支持 .NET 9.0中断性变更 支持 原生AOT原生AOT的范例使用IlcInstructionSet参数 TraitsOutput类增加IsDynamicCodeCompiled/IsDynamicCodeSupported信息的输出为了支持原生AOT, …

详解Kafka并行计算架构

引言 在高流量的复杂场景下&#xff0c;Kafka 凭借卓越的性能表现脱颖而出&#xff0c;始终维持着极高的吞吐率和高效的消息消费能力&#xff0c;在众多消息队列产品中独树一帜。其稳定且强大的性能&#xff0c;不仅保障了海量数据的快速处理&#xff0c;还为各类业务的高效运行…

33.Word:国家中长期人才发展规划纲要【33】

目录 NO1.2样式​ NO3​ 图表 ​ NO4.5.6​ 开始→段落标记视图→导航窗格→检查有无遗漏 NO1.2样式 F12/另存为&#xff1a;Word.docx&#xff1a;考生文件夹样式的复制样式的修改 样式的应用&#xff08;没有相似/超级多的情况下&#xff09;——替换 [ ]通配符&#x…

Vuex状态管理

1、Vuex 是什么&#xff1f; Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 简单理解 Vuex可以帮我们管理全局的属性&#xff0c;并且是是响应式的&…

hexo部署到github page时,hexo d后page里面绑定的个人域名消失的问题

Hexo 部署博客到 GitHub page 后&#xff0c;可以在 setting 中的 page 中绑定自己的域名&#xff0c;但是我发现更新博客后绑定的域名消失&#xff0c;恢复原始的 githubio 的域名。 后面搜索发现需要在 repo 里面添加 CNAME 文件&#xff0c;内容为 page 里面绑定的域名&…

BUUCTF Pwn axb_2019_brop64 题解

这题是BROP 所以不下文件 先nc一下看看&#xff1a; 先要找到栈溢出长度&#xff1a; from pwn import * import timedef getsize():i 1while True:try:p remote("node5.buuoj.cn", 29367)p.sendafter("Please tell me:", ba * i)time.sleep(0.1)data …

基于springboot+vue的航空散货调度系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

SpringBoot 日志

目录 一. 日志概述 二. 日志的使用 1. 打印日志 (1) 获取日志对象 (2) 输出要打印的内容 2. 日志框架简介 (1) 门面模式简介 (2) SLF4J 框架简介 3. 日志的格式 4. 日志的级别 5. 日志配置 (1) 配置日志级别 (2) 日志持久化存储 ① 配置日志文件名 ② 配置日志的…