常用dialog(自定义布局中间弹出)

常用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>
发布了25 篇原创文章 · 获赞 2 · 访问量 1493

猜你喜欢

转载自blog.csdn.net/geaosu2/article/details/104406480