解决圆角dialog黑色(白色)背景问题
2017-04-24 14:52
260 查看
解决圆角dialog黑色(白色)背景问题
当把dialog的背景设置为圆角时,绝大部分会碰到四个角有不和谐背景的情况网上解决办法很多基本上分为设置style,布局嵌套,设置window属性
也亲自尝试了一下,效果总是时好时坏,于是结合各方法做一次总结
要想实现圆角,dialog的布局(自定义)的根节点不能设置背景或者颜色,否则无论哪种方法都不能去掉圆角背景
最好是自定义dialog,并在onstart中设置window属性
完成了上两步,style就可有可无了,为了避免小瑕疵(例如莫名多出一条线)建议还要带上,如下
<style name="dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@color/transparent</item> <!-- 边框 --> <item name="android:windowIsFloating">true</item> <!-- 是否浮现在activity之上 --> <item name="android:windowIsTranslucent">true</item> <!-- 半透明 --> <item name="android:windowNoTitle">true</item> <!-- 无标题 --> <item name="android:background">@color/transparent</item> <!-- 背景色 --> <item name="android:windowBackground">@color/white</item> <!-- 背景透明 --> <item name="android:backgroundDimEnabled">true</item> <!-- 模糊 --> <item name="android:windowFullscreen">true</item> <!-- 全屏 --> </style>
构造方法中设置style
public MyDialog(Context context) { super(context, R.style.dialog); init(); }
自定义dialog中设置window属性
@Override protected void onStart() { super.onStart(); getWindow().setBackgroundDrawableResource(android.R.color.transparent); }
设置dialog布局,init()方法可在构造方法中调用
private void init() { setContentView(R.layout.dialog); }
这样弹出的dialog就会正常显示布局中的圆角了
备注
实现dialog样式的方式有两种
Activity作为Dialog样式弹出
使用 T extends Dialog类
Dialog类或者其子类的弹出不会触发Activity的生命周期
Activity作为Dialog则会触发上个Activity的oPause方法,消失时触发onResume方法
为了感谢看完本文的童鞋,特地献上福利图片一张。。。。。。。。。请注意:
如果你屏幕旁有人在,请谨慎往下观看!!!!!!!!!
如果你屏幕旁有人在,请谨慎往下观看!!!!!!!!!
如果你屏幕旁有人在,请谨慎往下观看!!!!!!!!!
福利
![](http://upload-images.jianshu.io/upload_images/2209660-ba618be6b2f689f1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 好记性不如烂笔头
最近公司用了一个 bug 管理平台 mantis 告别 禅道 了
记录几个
相关文章推荐
- ListView滑动时 item出现黑色背景的问题的解决方法
- 解决Ubuntu Eclipse 代码浮层黑色背景问题
- android dialog圆角显示及解决出现的黑色棱角
- Android dialog圆角显示及解决出现的黑色棱角
- 【android】把view保存为图片的方法以及解决保存后图片背景变黑色的问题
- 解决Ubuntu Eclipse 代码浮层黑色背景问题
- 解决CalendarExtender控件被遮挡的问题,并加上白色背景,以避免多层影响。
- android dialog圆角显示及解决出现的黑色棱角
- 解决listview设置背景图片以后,拖动出现黑色的问题。
- IE8滤镜效果不支持,背景显示为黑色问题解决办法
- 解决 黑色背景问题
- Android学习:ListView拖动时背景变黑色问题解决方法
- 如何解决在ASP.NET中应用JavaScript的 alert 函数时弹出的窗口背景全部为白色的问题
- android dialog圆角显示及解决出现的黑色棱角.(友情提示)
- 解决thinkphp图片上传生成缩略图背景为黑色的问题
- 解决:android Listview 拖动时背景为黑色问题
- 解决:android Listview 拖动时背景为黑色问题
- 解决listview设置背景图片以后,拖动出现黑色的问题。
- listView解决滑动时黑色背景问题
- android开发之解决ListView滑动时背景是黑色的问题