使用样式文件,在values 目录下新建styles.xml文件,编写如下代码:

< 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 >

调用时,使用AlerDialog的接口类,Dialog 接口编写如下代码:

Dialogdialog = new Dialog(SetActivity. this ,R.style.dialog);
dialog.setContentView(R.layout.test);
dialog.show();

下面我们查看一下Dialog的源码文件,里面的构造函数为如下:

public Dialog(Contextcontext, int theme){
mContext
= new ContextThemeWrapper(
context,theme
== 0 ? com.android. internal .R.style.Theme_Dialog:theme);
mWindowManager
= (WindowManager)context.getSystemService( " window " );
Windoww
= PolicyManager.makeNewWindow(mContext);
mWindow
= w;
w.setCallback(
this );
w.setWindowManager(mWindowManager,
null , null );
w.setGravity(Gravity.CENTER);
mUiThread
= Thread.currentThread();
mDismissCancelHandler
= new DismissCancelHandler( this );
}

这里面我们可以看出,Android 使用了默认的构造函数为Dialog 设置样式,如果没有为其设置样式,即默认加载事先编写好的样式文件,Dialog 一共由多个9.png的图片构成,大部分都是带有边框的9.png图片,所以就是为什么我们上边的样式文件要将其背景去除掉。这个东西搞了我好久,希望对你有帮助

前后效果对比

未设置前:

设置后:

更多相关文章

  1. android相机调试
  2. android中ColorStateList及StateListDrawable设置Selector
  3. Android(安卓)TextView字体颜色等样式详解
  4. Android(安卓)Sqlite Failed to open database(无法打开数据库文
  5. 「横竖屏」 「分屏」 「虚拟按键」
  6. android 界面布局
  7. Android植物大战僵尸附源码
  8. android Bitmap
  9. NPM 和webpack 的基础使用

随机推荐

  1. android > 获取 通讯录 信息
  2. android 音效
  3. android添加各种权限整理
  4. 【OOM】Android加载大图片OOM异常解决
  5. Android Fragment页打开相册
  6. net :: ERR_CLEARTEXT_NOT_PERMITTED
  7. checkbox style
  8. 【Android】详解Android动画之Interpolat
  9. 完成android的manven项目管理
  10. Android - 解决onSaveInstanceState的Bug