一、弹出式对话框分类
一般弹出式对话框可以分为几类:
①使用Dialog
②使用PopupWindow
③使用Activity
二、使用Dialog对话框
1、例子(消除背景)
<style name="random_code_dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
Dialog dialog = new Dialog(SetActivity.this, R.style.dialog);
dialog.setContentView(R.layout.test);
dialog.show();
2、特点:使用方便,但是位置比较固定
三、使用PopupWindow
1、例子
PopupWindow mPopWindowMore = new PopupWindow(_viewPopwindow, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
mPopWindowMore.setTouchable(true);
mPopWindowMore.showAtLocation(_view, Gravity.BOTTOM, 0, 0);
mPopWindowMore.setOnDismissListener(new PopupWindow.OnDismissListener(){
@Override
public void onDismiss() {
setBackgroundAlpha(1f);
}
});
2、特点:可以使用showAtLocation设置显示位置,也可以使用ShowAsDropDown显示在View的相对位置
四、使用Activity来作为对话框
1、使用样式
<style name="DialogViewActivity">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
//消除动画,否则会使用默认的Activity动画
<item name="android:windowAnimationStyle">@style/AnimationFade</item>
</style>
2、在配置文件中使用这个样式
3、特点:可以显示在任意位置