Android自定义Dialog内部透明、外部遮罩效果
程序员文章站
2023-09-04 14:35:56
本文实例为大家分享了android自定义dialog遮罩效果的具体代码,供大家参考,具体内容如下
图例:
代码
1、自定义dialog:引入样式和代码指定样式...
本文实例为大家分享了android自定义dialog遮罩效果的具体代码,供大家参考,具体内容如下
图例:
代码
1、自定义dialog:引入样式和代码指定样式
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 布局
<?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内容样式
<?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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。