常用dialog,从中间弹出,加载的自定义布局
废话不多说,上图:
1. dialog布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/dialog_bg_3">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2dp"
android:text="游戏完成提示"
android:textAllCaps="false"
android:textColor="#E4A420"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="20dp"
android:layout_marginRight="30dp"
android:text="恭喜你完成游戏: "
android:textAllCaps="false"
android:textColor="#3F3126"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDifficulty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="14dp"
android:layout_marginRight="30dp"
android:text="难度:变态(5)"
android:textAllCaps="false"
android:textColor="#3F3126"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="14dp"
android:layout_marginRight="30dp"
android:text="用时:5分12秒"
android:textAllCaps="false"
android:textColor="#3F3126"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvRanking"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="14dp"
android:layout_marginRight="30dp"
android:text="排名:第1名"
android:textAllCaps="false"
android:textColor="#3F3126"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvOldPicOldDif"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="20dp"
android:layout_marginRight="30dp"
android:background="@drawable/btn_bg"
android:gravity="center"
android:text="继续-原图(难度不变)"
android:textAllCaps="false"
android:textColor="#F2CB5B"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvNewPicOldDif"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="10dp"
android:layout_marginRight="30dp"
android:background="@drawable/btn_bg"
android:gravity="center"
android:text="继续-更换图片(难度不变)"
android:textAllCaps="false"
android:textColor="#F2CB5B"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvOldPicNewDif"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="10dp"
android:layout_marginRight="30dp"
android:background="@drawable/btn_bg"
android:gravity="center"
android:text="继续-原图(增加难度)"
android:textAllCaps="false"
android:textColor="#F2CB5B"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvNewPicNewDif"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="10dp"
android:layout_marginRight="30dp"
android:background="@drawable/btn_bg"
android:gravity="center"
android:text="继续-更换图片(增加难度)"
android:textAllCaps="false"
android:textColor="#F2CB5B"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvExit"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="10dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="20dp"
android:background="@drawable/btn_bg"
android:gravity="center"
android:text="退出"
android:textAllCaps="false"
android:textColor="#F2CB5B"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
2. 显示dialog的方法
private Dialog mDialog;
/**
* 退出确认(如果正在游戏中,图示退出,如果游戏完成了,不提示退出)
* 如果游戏完成了,提示是否继续游戏,继续游戏,难度等级加1,以此类推
* 1. 换图玩
* 2. 手动指定游戏难度玩
*/
public void showFinishDialog() {
//注册成功dialog
View dialogView = LayoutInflater.from(PlayActivity.this).inflate(R.layout.play_success_dialog_layout, null, false);
final TextView tvDialogDifficulty = (TextView) dialogView.findViewById(R.id.tvDifficulty); // 难度:变态(5)
TextView tvDialogTime = (TextView) dialogView.findViewById(R.id.tvTime); // 用时:5分12秒
TextView tvDialogRanking = (TextView) dialogView.findViewById(R.id.tvRanking); // 排名:第1名
TextView tvDialogOldPicOldDif = (TextView) dialogView.findViewById(R.id.tvOldPicOldDif); // 继续-原图(难度不变)
TextView tvDialogNewPicOldDif = (TextView) dialogView.findViewById(R.id.tvNewPicOldDif); // 继续-更换图片(难度不变)
TextView tvDialogOldPicNewDif = (TextView) dialogView.findViewById(R.id.tvOldPicNewDif); // 继续-原图(增加难度)
TextView tvDialogNewPicNewDif = (TextView) dialogView.findViewById(R.id.tvNewPicNewDif); // 继续-更换图片(增加难度)
TextView tvDialogExit = (TextView) dialogView.findViewById(R.id.tvExit); // 退出
// 设置数据
tvTime.setText("用时:00分00秒");
tvDialogRanking.setText("排名:第1名");
// 继续-原图(难度不变)
tvDialogOldPicOldDif.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDialog != null) {
mDialog.dismiss();
}
}
});
// 继续-更换图片(难度不变)
tvDialogNewPicOldDif.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDialog != null) {
mDialog.dismiss();
}
}
});
// 继续-原图(增加难度)
tvDialogOldPicNewDif.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDialog != null) {
mDialog.dismiss();
}
Toast.makeText(PlayActivity.this, "难度增加,游戏开始", Toast.LENGTH_SHORT).show();
}
});
// 继续-更换图片(增加难度)
tvDialogNewPicNewDif.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDialog != null) {
mDialog.dismiss();
}
}
});
tvDialogExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDialog != null) {
mDialog.dismiss();
}
finish();
}
});
//创建dialog
if (mDialog == null) {
mDialog = new Dialog(PlayActivity.this, R.style.play_success_dialog_style);
}
mDialog.setCancelable(false);
mDialog.setContentView(dialogView);
mDialog.show();
}
3. dialog 的主题样式 R.style.play_success_dialog_style
<!--游戏结束弹框-->
<style name="play_success_dialog_style" parent="Theme.AppCompat.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
</style>