kikiv 发表于 2015-07-15 09:55

自定义的Dialog对话框

Android平台
Eclipse开发工具
可能不是最好的,希望大家多指正。


MainActivity部分的代码package com.example.mydialog;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

public class MainActivity extends Activity {

    Button mBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
         
      mBtn=(Button) findViewById(R.id.btn);
      mBtn.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                showAlertDialog();
            }
      });
         
    }


// 对话框
    private void showAlertDialog() {

      final AlertDialog dlg = new AlertDialog.Builder(this).create();
      dlg.show();
      Window window = dlg.getWindow();
      // *** 主要就是在这里实现这种效果的.
      // 设置窗口的内容页面,alertdialog.xml文件中定义view内容
      window.setContentView(R.layout.alertdialog);
      // 为确认按钮添加事件,执行退出应用操作
      Button tv_queding = (Button) window.findViewById(R.id.tv_content1);
      tv_queding.setText("确 定   ");
      tv_queding.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("SdCardPath")
            public void onClick(View v) {

                Intent intent=new Intent();
                intent.setClass(MainActivity.this, NextActivity.class);
                startActivity(intent);
                dlg.cancel();
            }
      });
      //取消按钮不做任何操作可以不用添加动作
      Button tv_quxiao = (Button) window.findViewById(R.id.tv_content2);
      tv_quxiao.setText("取 消   ");
      tv_quxiao.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

               

                dlg.cancel();
            }
      });


      dlg.setCancelable(false);
    }
   
}alertdialog.xml部分的代码<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    >
   
    <!-- 整个布局为线性布局,让最上面的图片、账户框、密码框平分上半部分,最下面的按钮独占一部分 -->
<LinearLayout
    android:layout_width="410dp"
    android:layout_height="167dp"
    android:background="@drawable/icon_bg"
    android:layout_gravity="center"
    android:orientation="vertical"
    >
   
    <!-- 最上面的提示图片 -->
    <ImageView
      android:id="@+id/img"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="@drawable/tbz198x50"
      android:layout_marginTop="15dp"
      android:layout_marginLeft="20dp"
      android:layout_weight="1"
      />
   
    <!-- 账号框部分 -->
    <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:layout_weight="1"
      >
         
    <TextView
      android:id="@+id/txt_zhanghao"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="账 号:"
      android:layout_marginLeft="30sp"
      android:textColor="#2E9AFE"
      />
   
    <EditText
      android:id="@+id/edt_zhanghao"
      android:layout_width="300dp"
      android:layout_height="30dp"
      android:background="@drawable/edt35x246blue"
      android:layout_marginLeft="5dp"
      />
    </LinearLayout>
   
    <!-- 密码框部分 -->
    <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:layout_weight="1"
      >
         
    <TextView
      android:id="@+id/txt_mima"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="密 码:"
      android:layout_marginLeft="30sp"
      android:textColor="#2E9AFE"
      />
    <EditText
      android:id="@+id/edt_zhanghao"
      android:layout_width="300dp"
      android:layout_height="30dp"
      android:background="@drawable/edt35x246blue"
      android:password="true"
      android:layout_marginLeft="5dp"
      />
      
    </LinearLayout>
    </LinearLayout>
   
<!-- 蓝色的线条 -->
    <View
      android:layout_width="410dp"
      android:layout_height="1dp"
      android:background="#2E9AFE"
      />
   
<!-- 以下部分为确定和取消的两个按钮 -->
    <LinearLayout
      android:layout_width="410dp"
      android:layout_height="60dp"
      android:layout_gravity="center"
      android:background="@drawable/icon_bg"
      android:orientation="horizontal"
      android:paddingLeft="5dp"
      android:paddingRight="5dp" >

      <!-- 另一个颜色值 #a8bbc6-->
      <View
            android:layout_width="1dp"
            android:layout_height="55dp"
            android:background="#fff"
            android:layout_weight="1"
            />
      <Button
            android:id="@+id/tv_content1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textColor="#2E9AFE"
            android:textSize="22sp"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@drawable/icon_bg"
            />

         <View
            android:layout_width="1dp"
            android:layout_height="60dp"
            android:background="#fff"
            android:layout_weight="1"
            />
      <View
            android:layout_width="1dp"
            android:layout_height="60dp"
            android:background="#2E9AFE"
            />
         
      <View
            android:layout_width="1dp"
            android:layout_height="60dp"
            android:background="#fff"
            android:layout_weight="1"
            />

            <Button
                android:id="@+id/tv_content2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textColor="#2E9AFE"
                android:textSize="22sp"
                android:layout_weight="1"
                android:layout_gravity="center"
                android:background="@drawable/icon_bg"
               />
            
            <View
            android:layout_width="1dp"
            android:layout_height="55dp"
            android:background="#fff"
            android:layout_weight="1"
            />
      </LinearLayout>
         
    </LinearLayout>

baopbird2005 发表于 2015-07-15 11:22

现在很多都是使用 DialogFragment
页: [1]
查看完整版本: 自定义的Dialog对话框