<resources> <style name="dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/black</item> <item name="android:windowBackground">@null</item> <item name="android:backgroundDimEnabled">false</item> </style> </resources>
View myView = ((Activity) context).getLayoutInflater().inflate(R.layout.dialog, null); final Dialog myDialog = new Dialog(context, R.style.dialog); myDialog.setContentView(myView); myDialog.getWindow().setLayout(getWidthOfDialog(context), ViewGroup.LayoutParams.WRAP_CONTENT); myDialog.show();
//获取Dialog的宽度 private static int getWidthOfDialog(Context context) { if (mWidth > 0) { return mWidth; // 已初始化,直接返回数值 } // 设置Dialog的宽度,在不同机器上宽度不一致,所以在这里统一 DisplayMetrics dm = context.getResources().getDisplayMetrics(); int width = dm.widthPixels; int padding = (int) (20 * dm.density); mWidth = width - 2 * padding; return mWidth; }