自定义圆角dialog

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

发布了27 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u013297345/article/details/47145187