Android
自定义对话框的简单实现方式,只需要自定义一个布局文件即可实现
1、新建layout.xml
布局文件
2、设置布局文件布局
1、设置layout
布局为LinearLayout
布局,然后在界面中在加入一个LinearLayout
布局,之后即可拖放组件
上面即是对话框的布局,建议对于按钮直接使用图片组件并将组件的按钮样式设置为图片组件的背景图即可对于组件间的间隔可通过添加空白的组件来实现
附:layout.xml
代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="238dp"
android:background="@drawable/logo04"
android:orientation="vertical">
<TextView
android:id="@+id/d_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-black"
android:gravity="center"
android:text="退 出 游 戏"
android:textColor="#B8860B"
android:textSize="24sp" />
<TextView
android:id="@+id/d_message"
android:layout_width="match_parent"
android:layout_height="106dp"
android:fontFamily="sans-serif-black"
android:gravity="center"
android:text="确认退出游戏?"
android:textColor="#EE0000"
android:textSize="28sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textView6"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<ImageView
android:id="@+id/image_ok"
android:layout_width="110dp"
android:layout_height="40dp"
android:layout_weight="1"
android:background="@drawable/but_ok" />
<TextView
android:id="@+id/textView5"
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<ImageView
android:id="@+id/image_no"
android:layout_width="110dp"
android:layout_height="40dp"
android:layout_weight="1"
android:background="@drawable/but_no" />
<TextView
android:id="@+id/textView7"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
2、自定义dialog
对话框并关联自定义的布局文件
package com.example.yxapplication.MyDialog;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
//自定义的对话框类
public class MyDialog extends AlertDialog {
private Context context;
public MyDialog(Context context) {
super(context);
this.context=context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
//按下退出按钮时
public void gameStop(){
//创建退出对话框
//应用自定义的layout.xml布局文件
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog_layout, null);
final MyDialog myDialog=new MyDialog(MainActivity.this);
myDialog.setView(view);
myDialog.setView(view,0,0,0,0);
//禁止点击外部关闭
// myDialog.setCancelable(false);
//按下退出键的设置
myDialog.setCanceledOnTouchOutside(false);
myDialog.show();
WindowManager.LayoutParams params = myDialog.getWindow().getAttributes();
params.width = Config.deviceWidth/2*1;
params.height = Config.deviceHeight/3*2 ;
myDialog.getWindow().setAttributes(params);
//标题
TextView title=(TextView)view.findViewById(R.id.d_title);
title.setText("退 出 游 戏");
//内容
TextView message=(TextView)view.findViewById(R.id.d_message);
message.setText("确认退出游戏?");
//确定按钮
view.findViewById(R.id.image_ok).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.exit(0);
}
});
//取消按钮
view.findViewById(R.id.image_no).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDialog.dismiss();
}
});
}