您的位置:首页 > 移动开发 > Android开发

android自定义对话框样式

2015-02-27 13:26 447 查看
首先看一下效果图:



准备工作:新建一个对话框样式xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:layout_gravity="center"

    android:background="@drawable/pop_bg"

    android:orientation="vertical" >

    <TextView

        android:id="@+id/title"

        android:layout_width="fill_parent"

        android:layout_height="40.0dip"

        android:gravity="center"

        android:text="title.."

        android:textColor="#fffffb"

        android:textSize="20sp"

        android:background="@color/bar_text_2"

        android:visibility="visible" />

 

<TextView

        android:id="@+id/message"

        android:layout_width="fill_parent"

        android:layout_height="40.0dip"

        android:layout_marginTop="5dp"

        android:gravity="center"

        android:text="say something.."

        android:textColor="#fffffb"

        android:textSize="20sp"

        android:visibility="visible" />

    <LinearLayout

        android:layout_width="fill_parent"

        android:layout_height="60.0dip"

        android:layout_gravity="bottom"

        android:layout_marginTop="5dp"

        android:gravity="center"

        android:orientation="horizontal" >

        <Button

            android:id="@+id/positiveButton"

            android:layout_width="120dp"

            android:layout_height="wrap_content"

            android:background="@drawable/btn_ok_selector"

            android:textColor="#fffffb"

            android:text="保存"

            android:gravity="center" />

        <Button

            android:id="@+id/negativeButton"

            android:layout_width="120dp"

            android:layout_height="wrap_content"

            android:layout_marginLeft="20.0dip"

            android:textColor="#fffffb"

            android:text="取消"

            android:background="@drawable/btn_cancel_selector"

            android:gravity="center" />

    </LinearLayout>

</LinearLayout>

随便取个名字,这里我用dialog.xml,这里标红的用到了几个样式,在colors.xml里配置:

    <drawable name="pop_bg">#2D3A51</drawable>

    <drawable name="btn_ok_selector">#09941F</drawable>

    <drawable name="btn_cancel_selector">#7D93AE</drawable>

接下来,新建一个dialog类,继承dialog

package com.zihao.xbtn;

import com.zihao.R;

import android.app.Dialog;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.Window;

import android.widget.Button;

import android.widget.TextView;

public class CustomDialog extends Dialog {

   public Button positiveButton, negativeButton;

    public TextView title,message;

    public String titleStr,messageStr,positiveButtonStr,negativeButtonStr;

    public CustomDialog(Context context,String title,String message,String positiveButtonStr,String negativeButtonStr) {

        super(context);

        this.titleStr = title;

        this.messageStr = message;

        this.positiveButtonStr = positiveButtonStr;

        this.negativeButtonStr = negativeButtonStr;

        setCustomDialog();

        

    }

 

    private void setCustomDialog() {

        requestWindowFeature(Window.FEATURE_NO_TITLE);//去除标题

        View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog, null);

        title = (TextView) mView.findViewById(R.id.title);

        message = (TextView) mView.findViewById(R.id.message);

        positiveButton = (Button) mView.findViewById(R.id.positiveButton);

        negativeButton = (Button) mView.findViewById(R.id.negativeButton);

        

        title.setText(titleStr);

        message.setText(messageStr);

        positiveButton.setText(positiveButtonStr);

        negativeButton.setText(negativeButtonStr);

        super.setContentView(mView);

    }

     

 

    /**

     * 确定键监听器

     * @param listener

     */

    public void setOnPositiveListener(View.OnClickListener listener){

        positiveButton.setOnClickListener(listener);

    }

    /**

     * 取消键监听器

     * @param listener

     */

    public void setOnNegativeListener(View.OnClickListener listener){

        negativeButton.setOnClickListener(listener);

    }

    

}

以上准备工作就完成了,接下来就是调用

在要调用的activity中新建此方法:

private void dialog() {

        final CustomDialog dialog = new CustomDialog(this,"家家帮友情提示","确定退出吗?","确定","取消");//第二个参数是title,第三个参数是message,第四个参数是positiveButton的text,第五个参数是negativeButton的text

        

        

        //dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

        //EditText editText = (EditText) dialog.getEditText();//方法在CustomDialog中实现

        dialog.setOnPositiveListener(new OnClickListener() {

            @Override

            public void onClick(View v) {

                //dosomething youself

                dialog.dismiss();

            }

        });

        

 

        dialog.setOnNegativeListener(new OnClickListener() {

            @Override

            public void onClick(View v) {

                dialog.dismiss();

            }

        });

        dialog.show();

            //设置弹出框在屏幕弹出的长宽(此处最好不能写死,如600,350,会造成兼容性问题)

            dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);//设置对话框的宽度和高度

    }

要调用对话框时只要在onClick时调用此dialog方法就行了

@Override

    public void onClick(View view) {

        int id = view.getId();

        switch (id) {

        case R.id.circular:

             

            dialog();

            break;

        default:

            break;

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 对话框 dialog