自定義彈出框Dialog

最近在做一個項目,需要用到彈出框,但是系統的AlertDialog,PopupWindow等等均不能滿足要求,於是自定義的問題就來了,剛開始使用的AlertDialog來修改樣式,但是無法去除系統的分割線,至少我是沒找到方法,如果誰知道請不吝賜教,最後使用Dialog成功的定義出來了,廢話不多說,看效果圖吧。



直接上代碼:

1.自定義的佈局title.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="@dimen/dimen_10dp"
        android:layout_marginTop="10dp"
        android:text="提示"
        android:textColor="#000"
        android:textSize="16sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="@dimen/dimen_5dp"
        android:gravity="center"
        android:text="確定要退出登陸嗎?"
        android:textColor="#000"
        android:textSize="16sp" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="@dimen/dimen_1dp"
        android:background="#999999" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_cancle"
            android:layout_width="@dimen/dimen_0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:padding="@dimen/dimen_10dp"
            android:text="取消"
            android:textColor="#0F82FF"
            android:textSize="18sp" />

        <ImageView
            android:layout_width="@dimen/dimen_1dp"
            android:layout_height="match_parent"
            android:background="#999999" />

        <TextView
            android:id="@+id/tv_ok"
            android:layout_width="@dimen/dimen_0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:padding="@dimen/dimen_10dp"
            android:text="確定"
            android:textColor="#0F82FF"
            android:textSize="18sp"
            android:typeface="monospace" />
    </LinearLayout>

</LinearLayout>

2.在style裏面添加如下屬性,一會要引用:

 <style name="Translucent_Dialog" parent="@android:style/Theme.Dialog">
        <item name="android:background">@android:color/transparent</item>
		<!--顏色可以自己設置在color裏面-->
        <item name="android:windowBackground">@color/click_bg_normal</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>
3.Java代碼部分:

View view = View.inflate(getActivity(), R.layout.title, null);
        TextView tv_cancle = (TextView) view.findViewById(R.id.tv_cancle);
        TextView tv_ok = (TextView) view.findViewById(R.id.tv_ok);
        final Dialog mDialog = new Dialog(getActivity(), R.style.Translucent_Dialog);
        //去除標題的位置,否則無論你怎麼設置都會出現一片空白的位置
        mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        mDialog.setTitle("提示");
        mDialog.setContentView(view);
        mDialog.setCanceledOnTouchOutside(false);
        mDialog.show();
        // 設置dialog的寬度
        WindowManager.LayoutParams params = mDialog.getWindow().getAttributes();
        params.width = 500;
        params.height = 220;
        mDialog.getWindow().setAttributes(params);

        tv_cancle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mDialog.dismiss();
            }
        });

        tv_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                editor.remove("token").commit();
                mDialog.dismiss();
                Intent intent = new Intent(settingsFragmentActivity, DibuDaohangActivity.class);
                intent.putExtra("code", -1);
                startActivity(intent);
            }
        });



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章