自定义Dialog

来源:互联网 发布:python 群蚂蚁算法 编辑:程序博客网 时间:2024/04/30 04:13

效果图1:                                                                                  效果图2:


                                              

1.主Activity代码:

package com.jun.activity;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class DialogActivity extends Activity {
    private Button btn = null;
    private Dialog dialog = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        init();
        
    }

    private void init(){
        
        btn=(Button) findViewById(R.id.btn);
        btn.setOnClickListener(listener);
        
    }
private OnClickListener listener =new OnClickListener(){

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        showDialog();
        
    }

    private void showDialog() {
        // TODO Auto-generated method stub
        
        LayoutInflater inflater=LayoutInflater.from(DialogActivity.this);
          final View v1=inflater.inflate(R.layout.dialog_my,null);
                                 //R.layout.login与login.xml文件名对应,把login转化成View类型
          AlertDialog.Builder dialog=new AlertDialog.Builder(DialogActivity.this);
          dialog.setTitle("提醒");
          dialog.s
          dialog.setIcon(R.drawable.warning0);
          dialog.setView(v1);//设置使用View
          
          dialog.show();
        
    }};
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_dialog, menu);
        return true;
    }
}

2.对话框布局文件  dialog_my.xml布局文件内容:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/activity_bg_wall"
    >

     <LinearLayout
      android:id="@+id/bottom_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="40dip"
        android:minHeight="40.0dip"
        android:layout_marginTop="150dip"
        android:layout_marginBottom="0dp"
        android:background="@drawable/bar_bg_dialog_title"
        android:orientation="horizontal"
    >
         <Button
        android:id="@+id/btn_ok"
        android:layout_width="70dip"
        android:layout_height="40dip"
        android:layout_marginLeft="15dp"
        android:gravity="center_vertical|center_horizontal"
        android:textSize="16dp"
        android:textColor="#000000"
        android:background="@drawable/btn_bg_selecter"
        android:text="取消"
        />
          <Button
        android:id="@+id/btn_cancle"
        android:layout_width="70dip"
        android:layout_height="40dip"
        android:layout_marginLeft="130dp"
        android:gravity="center_vertical|center_horizontal"
        android:textSize="16dp"
        android:textColor="#000000"
        android:background="@drawable/btn_bg_selecter"
        android:text="确定"
        />
     </LinearLayout>
    

</RelativeLayout>


2.去标题栏,边框对话框设计:

⑴显示对话框的事件处理:

  private void showCustomDialog()
    {

       //定义Dialog对象,/res/values/下的styles.xml文件十分重要R.style.CustomDialog

        dialog = new Dialog(CustomDialogActivity.this, R.style.CustomDialog);
        dialog.setContentView(R.layout.dialog_view);// 为对话框设置自定义布局
        Button okBtn = (Button) dialog.findViewById(R.id.dialog_positive_button);
        Button canclebtn = (Button) dialog.findViewById(R.id.dialog_negative_button);
        okBtn.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                dialog.dismiss();
            }
        });
        
        canclebtn.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                dialog.dismiss();
            }
        });

}

⑵styles.xml文件内容:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 自定义Dialog -->
    <style
        name="CustomDialog"
        parent="@android:Theme.Dialog">
        <!--windowFrame框为无 -->
        <item
            name="android:windowFrame">@null</item>
    
        <item
            name="android:windowNoTitle">true</item>
        <!-- 除去背景 -->
        <item
            name="android:windowBackground">@drawable/bg_transparent</item>
        <!--是否浮现在activity之上 -->
        <item
            name="android:windowIsFloating">true</item>
        <!-- 是否半透明 -->
        <item
            name="android:windowIsTranslucent">true</item>
        <!-- 去掉覆盖层 -->
        <item
            name="android:windowContentOverlay">@null</item>
        <!-- 设置背景颜色 -->
        <item
            name="android:background">#00000000</item>
    </style>

    <!-- Dialog动画 -->
    <style
        name="dialogWindowAnim"
        parent="android:Animation">
        <!-- 进入时的动画 -->
        <item
            name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
        <!-- 退出时的动画 -->
        <item
            name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
    </style>
</resources>

⑶Dialog对话框的布局dialog_view.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_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:paddingLeft="20dp"
    android:background="#00000000"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title_bar"
        android:layout_width="fill_parent"
        android:layout_height="45dip"
        android:background="@drawable/bar_bg_shelf"
        android:gravity="center_vertical|center_horizontal"
        android:text="测试"
        android:textColor="#fff"
        android:textSize="20dip" />

    <TextView
        android:id="@+id/promptTv"
        android:layout_width="fill_parent"
        android:layout_height="150dp"
        android:layout_marginTop="0dip"
        android:background="@drawable/dialog_bg_wall"
        android:gravity="center"
        android:text="@string/promptText"
        android:textColor="#000"
        android:textSize="16.0sp" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="45dp"
        android:background="@drawable/bar_bg_shelf"
        android:gravity="center"
        android:orientation="horizontal"
        
         >

        <Button
            android:id="@+id/dialog_positive_button"
            android:layout_width="70dip"
            android:layout_height="40dip"
            android:layout_marginLeft="20dp"
            android:layout_gravity="center_vertical"
            android:background="@drawable/btn_bg_selecter"
            android:gravity="center_vertical|center_horizontal"
            android:text="确定"
            android:textColor="#000000"
            android:textSize="16dp" />

        <Button
            android:id="@+id/dialog_negative_button"
            android:layout_width="70dip"
            android:layout_height="40dip"
            android:layout_marginLeft="90dp"
              android:layout_gravity="center_vertical"
            android:background="@drawable/btn_bg_selecter"
            android:gravity="center_vertical|center_horizontal"
            android:text="显示"
            android:textColor="#000000"
            android:textSize="16dp" />
    </LinearLayout>

    

</LinearLayout>

来源:http://blog.csdn.net/qq435757399/article/details/8012310