在做项目中我们经常会使用弹出框,一般会用到Dialog 、AlertDialog、或者PopupWindow。下面来实现以下Dialog
在Activity实现 如下:
Dialog dialog = new Dialog(this, R.style.hanxunDialog);
View view = LayoutInflater.from(this).inflate(R.layout.item_layout, null);
dialog.setContentView(view);
Window dialogWindow = dialog.getWindow();
//设置显示屏幕位置
dialogWindow.setGravity(Gravity.CENTER);
WindowManager.LayoutParams lp =dialogWindow.getAttributes();
//设置y坐标
//lp.y = 20;
//设置透明度
lp.alpha = 0.5f;
lp.dimAmount = 0.5f;
dialogWindow.setAttributes(lp);
R.style.hanxunDialog 如下:
<style name="hanxunDialog" parent="@android:style/Theme.Dialog">
//Dialog的windowFrame框为无
<item name="android:windowFrame">@null</item>
//是否浮现在activity之上
<item name="android:windowIsFloating">true</item>
//是否半透明
<item name="android:windowIsTranslucent">true</item>
//是否显示title
<item name="android:windowNoTitle">true</item>
//设置dialog的背景
<item name="android:background">@android:color/transparent</item>
//显示区域背景是否透明
<item name="android:windowBackground">@android:color/transparent</item>
//就是用来控制灰度的值,当为1时,界面除了我们的dialog内容是高亮显示的,dialog以外的区域是黑色的,完全看不到其他内容,系统的默认值是0.5
<item name="android:backgroundDimAmount">0.5</item>
//显示区域以外是否使用黑色半透明背景
<item name="android:backgroundDimEnabled">false</item>
//显示区域以外使用黑色半透明背景
<!--<item name="android:backgroundDimEnabled">true</item>-->
</style>
R.layout.item_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:background="@drawable/bg_dialog_order_show"
android:orientation="vertical">
<LinearLayout android:layout_width="300dp"
android:layout_height="180dp"
android:orientation="vertical">
<TextView android:id="@+id/tv_order_titles"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_margin="8dp"
android:layout_marginTop="8dp"
android:gravity="center"
android:text=""
android:textSize="16sp"/>
<TextView android:id="@+id/tv_order_msg"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_margin="8dp"
android:layout_marginTop="8dp"
android:gravity="center"
android:text=""
android:textSize="16sp"/>
<TextView android:id="@+id/tv_order_cancel"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_margin="8dp"
android:layout_marginTop="8dp"
android:background="#CCC"
android:gravity="center"
android:text="确定"
android:textSize="16sp"/>
</LinearLayout>
</LinearLayout>
drawable里面的 bg_dialog_order_show
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<stroke android:width="0.1dp" android:color="#aea594"/>
<corners android:radius="5dp"/>
</shape>
网友评论