最近项目要做一个圆角的弹出框 本以为很快就搞定了 但是却遇到了困难 整圆角的时候 始终整不好 老是有一点点点白的东西作怪 百度了好久 好多都不好使 什么重写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 嘿嘿