借鉴自
https://blog.csdn.net/android_it/article/details/51161038
https://blog.csdn.net/oQiHaoGongYuan/article/details/50958659
效果
style
<!--dialog--> <style name="MyDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <!--是否在window之上--> <item name="android:windowIsFloating">true</item> </style>
本想在代码中省去这一步,但是他不是对Dialog操作的,是对ContextWrapper操作的,所以我不敢改动太多,留个坑,日后再做掉这个
布局
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="20dp" android:background="#fff" android:textColor="@color/colorAccent" android:text="我是自定义Dialog"/>
这里面存放一个你的dialog中的样式,我这里就简单把text view作为根布局,默认是一个居中的效果。
如果你想自己定制整个布局,而且需要背景也是默认的灰色,可以给背景设置成#66000000
dialog
public class MyDialog extends Dialog { public MyDialog(Context context) { super(context, R.style.MyDialog); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_dialog); } }