首先说说怎样去掉对话框的标题:
Dialog d = new Dialog(context);
d.requestWindowFeature(Window.FEATURE_NO_TITLE);
就这么简单
demo中是这样的:
public class CustomDialog extends Dialog implements android.view.View.OnClickListener {
private Window window = null;
public CustomDialog(Context context) {
super(context);
requestWindowFeature(Window.FEATURE_NO_TITLE); // 去掉对话框的标题
}
public void showDialog(int x, int y) {
setContentView(R.layout.dialog_input);
windowDeploy(x, y);
// 设置触摸对话框意外的地方取消对话框
setCanceledOnTouchOutside(false);
EditText explain = (EditText) findViewById(R.id.cus_diaedit);
findViewById(R.id.cus_diacancle).setOnClickListener(this);
findViewById(R.id.cus_diaok).setOnClickListener(this);
show();
}
// 设置窗口显示
public void windowDeploy(int x, int y) {
window = getWindow(); // 得到对话框
window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口弹出动画
window.setBackgroundDrawableResource(R.color.vifrification); // 设置对话框背景为透明
// WindowManager.LayoutParams wl = window.getAttributes();
// 根据x,y坐标设置窗口需要显示的位置
// wl.x = x; // x小于0左移,大于0右移
// wl.y = y; // y小于0上移,大于0下移
// wl.alpha = 0.6f; //设置透明度
// wl.gravity = Gravity.BOTTOM; //设置重力
// window.setAttributes(wl);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.cus_diacancle:
dismiss();
break;
case R.id.cus_diaok:
dismiss();
break;
}
}
}
public class MainActivity extends Activity{
private int screenWidthDip;
private int screenHeightDip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DisplayMetrics dm = new DisplayMetrics();
screenWidthDip = dm.widthPixels/2;
screenHeightDip = dm.heightPixels/2;
}
public void fly(View v){
CustomDialog dialog = new CustomDialog(MainActivity.this);
dialog.showDialog(screenWidthDip, screenHeightDip);
}
}
Dialog的XML布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/input_dialog_board"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:background="@drawable/yuanjiao1"
android:layout_height="200dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_centerInParent="true">
<TextView
android:id="@+id/cus_diatitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:textSize="16sp"
android:text="请输入支付密码"/>
<View
android:id="@+id/cus_diaview"
android:layout_below="@+id/cus_diatitle"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#9c9c9c"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"/>
<EditText
android:id="@+id/cus_diaedit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/cus_diaview"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="20dp"
android:hint="请输入密码"
android:inputType="textPassword" />
<TextView
android:layout_below="@+id/cus_diaedit"
android:id="@+id/cus_diacancle"
android:layout_marginLeft="18dp"
android:layout_marginRight="15dp"
android:layout_marginTop="20dp"
android:layout_width="100dp"
android:layout_height="30dp"
android:gravity="center"
android:text="取消"
android:background="@drawable/yuanjiao"/>
<TextView
android:layout_below="@+id/cus_diaedit"
android:id="@+id/cus_diaok"
android:layout_alignParentRight="true"
android:layout_marginRight="18dp"
android:layout_marginTop="20dp"
android:layout_width="100dp"
android:layout_height="30dp"
android:gravity="center"
android:text="确定"
android:background="@drawable/yuanjiao"/>
<TextView
android:layout_below="@+id/cus_diacancle"
android:layout_marginTop="20dp"
android:layout_marginLeft="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提示:没有密码请直接按确认"
android:textColor="#468ED0"/>
</RelativeLayout>
</RelativeLayout>
res/values/color
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="vifrification">#00000000</color> <!-- 透明 -->
</resources>
res/values/styles
<!-- 设置dialog弹出,退出动画 -->
<style name="dialogWindowAnim" parent="android:Animation" mce_bogus="1">
<item name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
<item name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
</style>
res/drawable/yuanjiao
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#2cbcd6"/>
<corners android:radius="5dp" />
<stroke
android:width="2px"
android:color="#cccccc" />
</shape>
res/drawable/yuanjiao1
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#ffffff"/>
<corners android:radius="5dp" />
<stroke
android:width="2px"
android:color="#cccccc" />
</shape>
res/anim/dialog_enter_anim
<?xml version="1.0" encoding="utf-8"?>
<!-- 退出时动画 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="0%"
android:pivotY="100%"
android:fillAfter="false"
android:duration="400"/>
</set>
res/anim/dialog_exit_anim
<?xml version="1.0" encoding="utf-8"?>
<!-- 弹出时动画 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:pivotX="0%"
android:pivotY="100%"
android:fillAfter="false"
android:duration="400"/>
</set>