简单的底部弹出框实现
在项目中经常用到底部弹出框或者其他地方的弹出框,今天用到了,在此记录下,用到的是 Dialog 来进行显示的。
先来看看效果吧!
当然也可以用 PopupWindow,但是 Dialog 简单些,所以就用来了,废话别多说,说说主要做些什么吧!
步骤:
- 创建一个 Dialog
mDialog = new Dialog( MainActivity.this, R.style.dialog );
创建的时候一个是Context,一个是主题,主题设置如下:
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:background">#FFFFFF</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowBackground">@android:color/transparent </item>
</style>
- 设置宽高度
mDialog.setContentView( R.layout.dialog_view );// 设置View
mDialog.setCanceledOnTouchOutside( true ); // 设置点击外部消失
LayoutParams layoutParams = getWindow().getAttributes();
Window window = mDialog.getWindow();
LayoutParams attributes = window.getAttributes();
layoutParams.height = attributes.height;// 获取Dialog View的高度,设置高度,View 的高度
layoutParams.width = layoutParams.width;// 设置宽度,是屏幕的宽度
- 设置弹出位置
int gravity = Gravity.BOTTOM;// 底部弹出
window.setGravity( gravity );
window.setLayout( layoutParams.width, layoutParams.height );
- 设置弹出动画
window.setWindowAnimations( R.style.myStyle );//设置弹出动画
动画的样式:
<style name="myStyle" parent="android:Animation">
<item name="@android:windowEnterAnimation">@anim/dialog_enter</item>
<item name="@android:windowExitAnimation">@anim/dialog_exit</item>
</style>
dialog_enter:
<?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" />
</set>
dialog_exit:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="400"
android:toYDelta="100%p" />
</set>
- 最后:弹出 Dialog
mDialog.show();
总结:本以为会有很多的话想说,可是每次一打出来就这么几个字,心塞。加油吧,骚年!
2016年4月26日 17:17:37