自定义圆角dialog
2015-07-30 10:08
281 查看
最近项目要做一个圆角的弹出框 本以为很快就搞定了 但是却遇到了困难 整圆角的时候 始终整不好 老是有一点点点白的东西作怪 百度了好久 好多都不好使 什么重写dialog了
乱七八糟的,还是要自己来,废话不说 上主要的代码
final Dialog dialog=new Dialog(mContext, R.style.Dialog_Fullscreen);
dialog.setContentView(R.layout.money_dialog);
dialog.getWindow().setGravity(Gravity.CENTER);
dialog.getWindow().setLayout((int) (JZBConstants.WIDTH-dip_px_Util.convertDipOrPx(mContext, 60)), (int) (JZBConstants.HEIGHT/5+dip_px_Util.dip2px(mContext, 40)));
dialog.setCanceledOnTouchOutside(true);
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/money_dialog_bg" >
<TextView
android:id="@+id/money_dialog_paywho"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center_horizontal"
android:text=""
android:textSize="16sp" />
<EditText
android:id="@+id/money_dialog_count"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_below="@id/money_dialog_paywho"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:background="@drawable/money_dialog_edittext_bg"
android:hint="请输入支付金额"
android:inputType="numberDecimal"
android:padding="5dp"
android:textSize="14sp"
android:textColorHint="#b2b2b2" />
<LinearLayout
android:id="@+id/money_dialog_container"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:id="@+id/money_dialog_cancle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/money_dialog_left_button_bg"
android:text="取消"
android:textColor="#3cc2a7" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#c9c9c9" />
<Button
android:id="@+id/money_dialog_enter"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/money_dialog_right_button_bg"
android:text="确定"
android:textColor="#3cc2a7" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_above="@id/money_dialog_container"
android:layout_marginTop="20dp"
android:background="#c9c9c9" />
</RelativeLayout>
这个是布局 最重要的就是设置背景 这个视图有个背景设置圆角 在drawable中
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#FFFFFF"/>
<corners android:radius="5dp"/>
</shape>
就是做到这个关键的一步 出错了 虽然有圆角了 但是 有点白色的东西圆角旁边 看着好恶心
所以还是设置dialog的背景样式 要透明
接下来就是解决问题的关键
</style>
<style name="Dialog_Fullscreen">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowBackground">@color/transparent</item><!--背景透明-->这个地方设置背景透明 就解决问题 那个恶心的东西就消失了
<item name="android:windowContentOverlay">@null</item>
</style>
忘了告诉大家 背景透明是 #00000000 嘿嘿
乱七八糟的,还是要自己来,废话不说 上主要的代码
final Dialog dialog=new Dialog(mContext, R.style.Dialog_Fullscreen);
dialog.setContentView(R.layout.money_dialog);
dialog.getWindow().setGravity(Gravity.CENTER);
dialog.getWindow().setLayout((int) (JZBConstants.WIDTH-dip_px_Util.convertDipOrPx(mContext, 60)), (int) (JZBConstants.HEIGHT/5+dip_px_Util.dip2px(mContext, 40)));
dialog.setCanceledOnTouchOutside(true);
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/money_dialog_bg" >
<TextView
android:id="@+id/money_dialog_paywho"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center_horizontal"
android:text=""
android:textSize="16sp" />
<EditText
android:id="@+id/money_dialog_count"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_below="@id/money_dialog_paywho"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:background="@drawable/money_dialog_edittext_bg"
android:hint="请输入支付金额"
android:inputType="numberDecimal"
android:padding="5dp"
android:textSize="14sp"
android:textColorHint="#b2b2b2" />
<LinearLayout
android:id="@+id/money_dialog_container"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:id="@+id/money_dialog_cancle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/money_dialog_left_button_bg"
android:text="取消"
android:textColor="#3cc2a7" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#c9c9c9" />
<Button
android:id="@+id/money_dialog_enter"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/money_dialog_right_button_bg"
android:text="确定"
android:textColor="#3cc2a7" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_above="@id/money_dialog_container"
android:layout_marginTop="20dp"
android:background="#c9c9c9" />
</RelativeLayout>
这个是布局 最重要的就是设置背景 这个视图有个背景设置圆角 在drawable中
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#FFFFFF"/>
<corners android:radius="5dp"/>
</shape>
就是做到这个关键的一步 出错了 虽然有圆角了 但是 有点白色的东西圆角旁边 看着好恶心
所以还是设置dialog的背景样式 要透明
接下来就是解决问题的关键
</style>
<style name="Dialog_Fullscreen">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowBackground">@color/transparent</item><!--背景透明-->这个地方设置背景透明 就解决问题 那个恶心的东西就消失了
<item name="android:windowContentOverlay">@null</item>
</style>
忘了告诉大家 背景透明是 #00000000 嘿嘿
相关文章推荐
- org.springframework.web.servlet.view
- 设置按钮(UIButton)为圆角矩形
- mysql分区表技术
- Java IO【16】利用转换流简单的写一些代码
- Open-air shopping malls(二分半径,两元交面积)
- linux记录 ---- 添加开机启动运行脚本
- 围绕鼠标的文字
- 关于导航栏的六个小技巧
- android:inputType的常用取值
- Sublime Text 2 配置C++运行,带黑窗口,支持中文[windows]
- jquery 事件对象属性小结
- 深度学习&&机器学习&&模式识别
- WM_CTRLCOLOR
- 使用button标签让文字垂直水平居中
- Hibernate延迟加载与opensessioninviewFilter
- 【LintCode】 Best Time to Buy and Sell Stock III 买卖股票的最佳时机 III
- RT5350 安装 读卡器驱动
- 数据结构——树的简单操作集合
- Matlab--随机变量的数字特征
- ACM寻找连续的数的乘积最大值