1.代码实现
private void Dialog() {
View inflate = LayoutInflater.from(this).inflate(R.layout.dialog_settled_select_picture, null);
Dialog dialog = new AlertDialog.Builder(this, R.style.ShareDialogStyle)
.setView(inflate)
.setCancelable(true)
.create();
dialog.show();
Window win = dialog.getWindow();
win.setGravity(Gravity.BOTTOM);
win.getDecorView().setPadding(0, 0, 0, 0);
win.setWindowAnimations(R.style.dialogWindowAnim);
WindowManager.LayoutParams lp = win.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
win.setAttributes(lp);
View.OnClickListener clickListener = v -> {
switch (v.getId()) {
case R.id.camera:
CheckTakePhoto(TYPE_FACE);
break;
case R.id.book:
showShortToast("哈哈哈1");
break;
}
dialog.dismiss();
};
inflate.findViewById(R.id.camera).setOnClickListener(clickListener);
inflate.findViewById(R.id.book).setOnClickListener(clickListener);
inflate.findViewById(R.id.cancel).setOnClickListener(clickListener);
}
<style name="ShareDialogStyle" parent="Theme.AppCompat.Dialog">
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
3.R.style.dialogWindowAnim
<!-- share dialog -->
<style name="dialogWindowAnim" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
<item name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
</style>
4.dialog_enter_anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="400"
android:fromYDelta="100%"
android:toYDelta="0" />
</set>
5.dialog_exit_anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="400"
android:fromYDelta="0"
android:toYDelta="100%" />
</set>