使用样式文件,在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获取SD卡上图片和视频文件及其缩略图
  2. android代码混淆
  3. Android(安卓)Studio 设置控件和颜色透明度
  4. android 4中新增的日历处理相关API
  5. Android多屏幕适配
  6. Android各种简单的对话框的实现案例
  7. LinearLayout 内部控件居中
  8. 修改状态栏颜色和状态栏字体颜色
  9. NPM 和webpack 的基础使用

随机推荐

  1. 图解HTTP(一)
  2. 推荐
  3. 《推荐系统实践》—— 读后总结
  4. 图解HTTP(二)
  5. 《Effective Java》—— 读后总结
  6. 《一线架构师实践指南》—— 读后总结
  7. Java EE 8 时间表公布,预计 7 月发布最终
  8. redis之持久化
  9. 说说java异常Exception
  10. redis之通信协议