本文实例为大家分享了Android自定义Dialog遮罩效果的具体代码,供大家参考,具体内容如下
图例:
代码
1、自定义dialog:引入样式和代码指定样式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package com.gxjl.pe.gxjlpesdk.view; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import com.gxjl.pe.gxjlpesdk.R; /** * 相机、相册选择 弹框 * Created by xiaoshuai on 2018/8/20. */ public abstract class CameraPhotoDialog extends Dialog implements View.OnClickListener{ private Context context; public CameraPhotoDialog( @NonNull Context context) { super (context, R.style.dialogTransparent); //内容样式在这里引入 this .context = context; } public CameraPhotoDialog( @NonNull Context context, int themeResId) { super (context, themeResId); } protected CameraPhotoDialog( @NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) { super (context, cancelable, cancelListener); } @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.dialog_camrea_photo); //tv_title = findViewById(R.id.tv_title); Window dialogWindow = getWindow(); WindowManager.LayoutParams lp = dialogWindow.getAttributes(); DisplayMetrics d = context.getResources().getDisplayMetrics(); // 获取屏幕宽、高用 lp.width = ( int ) (d.widthPixels * 0.9 ); // 宽度设置为屏幕宽度的80% //lp.dimAmount=0.0f;//外围遮罩透明度0.0f-1.0f dialogWindow.setAttributes(lp); dialogWindow.setGravity(Gravity.BOTTOM); //内围区域底部显示 } @Override public void onClick(View view) { int i = view.getId(); if (i == R.id.tv_cancel) { this .dismiss(); } } protected abstract void confirm(); } |
2、dialog_camrea_photo.xml 布局
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:tools = "http://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:background = "@android:color/transparent" android:orientation = "vertical" > < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_marginBottom = "10dp" android:background = "@android:color/transparent" android:orientation = "vertical" > < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:background = "@drawable/bg_camera_check" android:orientation = "vertical" > < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:padding = "15dp" android:layout_gravity = "center_horizontal" android:text = "拍照" android:textSize = "16sp" android:textColor = "@color/font_007AFF" /> < View android:layout_width = "match_parent" android:layout_height = "1dp" android:background = "@color/line_ECECED" /> < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:padding = "15dp" android:layout_gravity = "center_horizontal" android:text = "照片图库" android:textSize = "16sp" android:textColor = "@color/font_007AFF" /> </ LinearLayout > < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_marginTop = "10dp" android:background = "@drawable/bg_camera_check" android:orientation = "vertical" > < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:padding = "15dp" android:layout_gravity = "center_horizontal" android:text = "拍照" android:textSize = "16sp" android:textColor = "@color/font_007AFF" /> </ LinearLayout > </ LinearLayout > </ LinearLayout > |
3、style.xml 样式布局:指定dialog内容样式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<? xml version = "1.0" encoding = "utf-8" ?> < resources > < style name = "dialogTransparent" parent = "@android:style/Theme.Dialog" > < item name = "android:windowFrame" >@null</ item > <!--边框--> < item name = "android:windowIsFloating" >true</ item > <!--是否浮现在activity之上--> < item name = "android:windowIsTranslucent" >true</ item > <!--半透明--> < item name = "android:windowNoTitle" >true</ item > <!--无标题--> < item name = "android:background" >@android:color/transparent</ item > <!--背景透明--> < item name = "android:windowBackground" >@android:color/transparent</ item > <!--背景透明--> < item name = "android:backgroundDimEnabled" >true</ item > <!--模糊--> < item name = "android:backgroundDimAmount" >0.6</ item > <!--背景透明度--> </ style > </ resources > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u012246458/article/details/81945515?utm_source=blogxgwz7