Android中Dialog位置的设置
效果图如下:
Dialog实现如下:
在Activity的点击事件中调用:
MyDialog.java:
public class MyDialog extends Dialog {
public MyDialog(@NonNull Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//打气
setContentView(R.layout.mydialog);
//窗口
Window window = getWindow();
//拿到窗口参数对象
WindowManager.LayoutParams attributes = window.getAttributes();
//通过attributes设置参数,----->以设置dialog出现在底部为例
attributes.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
attributes.width = WindowManager.LayoutParams.MATCH_PARENT;
//将属性重新设置给窗口,使用更新属性来生效
window.setAttributes(attributes);
}
}
Android中Dialog样式的设置
模仿Android原生定义Dialog样式:(去除标题)
首先看一下Android原生是怎么定义其样式的
然后我们模仿其实现:
最后在自己定义的Dialog中调用:
样式代码如下:
<!--自定义Dialog样式-->
<style name="MyDialogStyle" parent="android:Theme.Dialog">
<item name="android:windowBackground">@android:color/white</item>
<!--边框-->
<item name="android:windowFrame">@null</item>
<!--是否覆盖窗口显示内容-->
<item name="android:windowContentOverlay">@null</item>
<!--动画样式-->
<item name="android:windowAnimationStyle">@null</item>
<!--是否设置阴影-->
<item name="android:backgroundDimEnabled">true</item>
<!--是否设置半透明的效果-->
<item name="android:windowIsTranslucent">true</item>
<!--是否除去标题栏-->
<item name="android:windowNoTitle">true</item>
<!--是否点击外部空白处消失-->
<item name="android:windowCloseOnTouchOutside">true</item>
</style>