1、效果图:
2、定义dialog属性样式
<!-- Dialog 样式-->
<style name="dialogStyle" parent="@android:style/Theme.Holo.Dialog">
<!-- 是否有边框 -->
<item name="android:windowFrame">@null</item>
<!--是否在悬浮Activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 标题 -->
<item name="android:windowNoTitle">true</item>
<!--阴影 -->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<!--背景透明-->
<item name="android:windowBackground">@android:color/transparent</item>
</style>
3.底部弹出框--弹出动画
3.1、res下创建anim,如下
3.2、创建弹出,退出动画效果属性文件
3.2.1、dialog_pop_up
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
3.2.2、dialog_exit
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0"
android:duration="300"
android:toYDelta="100%p" />
</set>
3.2.3、样式引用
<!--弹出框 动画-->
<style name="dialog_share" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/dialog_pop_up</item>
<item name="android:windowExitAnimation">@anim/dialog_exit</item>
</style>
4、创建dialog布局文件 dialog_retrieve_password
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:orientation="vertical">
<TextView
android:id="@+id/dialog_regist"
android:text="找回密码"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="55dp" />
<!--分割线-->
<View
android:background="#DCDCDC"
android:layout_width="wrap_content"
android:layout_height="1dp"/>
<TextView
android:id="@+id/dialog_Message"
android:text="短信验证登录"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="55dp" />
<View
android:background="#DCDCDC"
android:layout_width="wrap_content"
android:layout_height="10dp"/>
<TextView
android:id="@+id/dialog_cancel"
android:text="取消"
android:textSize="18sp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="58dp" />
</LinearLayout>
5、代码调用,showDialog()
5.1、调用
case R.id.login_forgot: //忘记密码 弹出底部弹出框
showDialog();
break;
5.2、 弹出
/**
* 底部弹出框
*/
private void showDialog() {
if (mDialog ==null){
initShareDialog();
}
mDialog.show();
}
5.3、初始化
/**
* dialog 初始化
*/
private void initShareDialog() {
mDialog = new Dialog(this, R.style.dialogStyle);
mDialog.setCanceledOnTouchOutside(true);
mDialog.setCancelable(true); //点击框外,框退出
Window window = mDialog.getWindow();
window.setGravity(Gravity.BOTTOM); //位于底部
window.setWindowAnimations(R.style.dialog_share); //弹出动画
View inflate = View.inflate(this, R.layout.dialog_retrieve_password, null);
inflate.findViewById(R.id.dialog_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDialog != null && mDialog.isShowing()){
mDialog.dismiss(); //消失,退出
}
}
});
window.setContentView(inflate);
//横向充满
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT);
}
6、结束。