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