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.pswp.cn/news/900467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900467.shtml
英文地址,請注明出處:http://en.pswp.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會加載只讀鏡像層并在鏡像棧頂部添加一個讀寫層。 如果運行中的容器修改了現有的一個已經存在的文件,那么該文件將會從讀寫層下面的只讀層復制到讀寫層,該文件的只讀版本依然存在,只是已經被讀寫層中該文件…