Android自定义Dialog(自定义主题、自定义布局)

  • Android自定义Dialog,实际的项目开发中默认的Dialog样式可能满足不了需求,这就需要自行定义Dialog

上图先

Android自定义Dialog(自定义主题、自定义布局)

  •  自定义的Dialog类CustomDialog.java
package com.learn.ui.util;



import android.app.Dialog;

import android.content.Context;

import android.os.Bundle;



/**

 * <p>Title: CustomDialog</p>

 * <p>Description:自定义Dialog(参数传入Dialog样式文件,Dialog布局文件) </p>

 * <p>Copyright: Copyright (c) 2013</p>

 * @author archie

 * @version 1.0

 */

public class CustomDialog extends Dialog {

        int layoutRes;//布局文件

        Context context;

        public CustomDialog(Context context) {

            super(context);

            this.context = context;

        }

        /**

         * 自定义布局的构造方法

         * @param context

         * @param resLayout

         */

        public CustomDialog(Context context,int resLayout){

            super(context);

            this.context = context;

            this.layoutRes=resLayout;

        }

        /**

         * 自定义主题及布局的构造方法

         * @param context

         * @param theme

         * @param resLayout

         */

        public CustomDialog(Context context, int theme,int resLayout){

            super(context, theme);

            this.context = context;

            this.layoutRes=resLayout;

        }

        @Override

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            this.setContentView(layoutRes);

        }

    }
  • 随便写个onClick事件调用一下

 

    public void onClick(View v) {

        switch (v.getId()) {

        case R.id.customDialogBtn:

            CustomDialog dialog=new CustomDialog(this, R.style.customDialog, R.layout.customdialog);

            dialog.show();

        default:

            break;

        }

    }

 

  •  theme样式文件style.xml
<?xml version="1.0" encoding="utf-8"?>

<resources>

    <style name="customDialog" parent="@android:Theme.Dialog">

        <item name="android:windowFrame">@null</item>

        <item name="android:windowNoTitle">true</item> 

        <item name="android:windowIsFloating">true</item>

        <item name="android:windowContentOverlay">@null</item>

    </style>

</resources> 
  • 自定义布局文件customdialog.xml
<?xml version="1.0" encoding="utf-8"?>

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

    android:layout_width="280dip"

    android:layout_height="wrap_content"

    android:layout_gravity="center"

    android:background="#EEEEEE" >



    <LinearLayout

        android:id="@+id/layout"

        android:layout_width="280dip"

        android:layout_height="fill_parent"

        android:layout_gravity="center"

        android:background="#EEEEEE"

        android:orientation="vertical"

        android:scrollbars="vertical" >



        <TextView

            android:layout_width="fill_parent"

            android:layout_height="45dip"

            android:layout_gravity="center_vertical"

            android:background="#880000"

            android:gravity="center_vertical"

            android:paddingLeft="10dp"

            android:text="自定义Dialog标题"

            android:textColor="#FFFFFF"

            android:textSize="20dip" />



        <LinearLayout

            android:layout_width="fill_parent"

            android:layout_height="36dip"

            android:background="#EEEEEE"

            android:gravity="center_vertical"

            android:orientation="horizontal"

            android:paddingLeft="10dip" >



            <TextView

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="资源1:"

                android:textColor="@android:color/black"

                android:textSize="16dip" />



            <TextView

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="锤子"

                android:textColor="@android:color/black"

                android:textSize="16dip" />

        </LinearLayout>



        <TextView

            android:layout_width="fill_parent"

            android:layout_height="1dip"

            android:background="#C0C0C0" />



        <LinearLayout

            android:layout_width="fill_parent"

            android:layout_height="36dip"

            android:background="#EEEEEE"

            android:gravity="center_vertical"

            android:orientation="horizontal"

            android:paddingLeft="10dip" >



            <TextView

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="资源2:"

                android:textColor="@android:color/black"

                android:textSize="16dip" />



            <TextView

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="毛线"

                android:textColor="@android:color/black"

                android:textSize="16dip" />

        </LinearLayout>



        <TextView

            android:layout_width="fill_parent"

            android:layout_height="1dip"

            android:background="#C0C0C0" />



        <LinearLayout

            android:layout_width="fill_parent"

            android:layout_height="36dip"

            android:background="#EEEEEE"

            android:gravity="center_vertical"

            android:orientation="horizontal"

            android:paddingLeft="10dip" >



            <TextView

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="资源3:"

                android:textColor="@android:color/black"

                android:textSize="16dip" />



            <TextView

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="球"

                android:textColor="@android:color/black"

                android:textSize="16dip" />

        </LinearLayout>

    </LinearLayout>



</ScrollView>

 over!

你可能感兴趣的:(android)