`

自定义Dialog

阅读更多

 自定义Dialog

 

 新建一个自定义的Dialog类,取名MyDialog,继承自Dialog

 

package
 com.and.mydialog;


import
 android.app.Dialog;

import
 android.content.Context;

import
 android.os.Bundle;

import
 android.view.LayoutInflater;

import
 android.view.View;


public
 
class
 MyDialog 
extends
 Dialog

 {

    Context context;
    
public
 MyDialog(Context context) {
        
super
(context);
        
//
 TODO Auto-generated constructor stub


        
this
.context 
=
 context;
    }
    
public MyDialog(Context context, int theme){
        super(context, theme);
        this.context =

 context;


    }


    @Override
    
protected
 
void
 onCreate(Bundle savedInstanceState) {
        
//
 TODO Auto-generated method stub


        
super
.onCreate(savedInstanceState);
        
this
.setContentView(R.layout.dialog);
    }

}

 

相应的布局文件dialog.xml

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


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

    android:orientation
="vertical"

    android:layout_width
="wrap_content"

    android:layout_height
="wrap_content"

    android:gravity
="center_vertical|center_horizontal"

    android:background
="@drawable/dialog_bg"
>

    
<
RelativeLayout 
        
android:layout_width
="fill_parent"

        android:layout_height
="wrap_content"

        android:paddingLeft
="30dip"

        android:paddingTop
="10dip"
>

        
<
ImageView 
            
android:id
="@+id/dialog_title_image"

            android:layout_alignParentLeft
="true"

            android:layout_width
="wrap_content"

            android:layout_height
="wrap_content"

            android:background
="@drawable/dialog_title_image"
/>

        
<
TextView 
            
android:layout_width
="wrap_content"

            android:layout_height
="wrap_content"

            android:layout_marginLeft
="10dip"

            android:layout_centerInParent
="true"

            android:text
="Title"

            android:layout_toRightOf
="@id/dialog_title_image"

            android:textColor
="#000000"

            android:textSize
="30sp"
/>

        
    
</
RelativeLayout
>

    
<
TextView 
            
android:layout_width
="fill_parent"

            android:layout_height
="1dip"

            android:background
="@drawable/lins"

            android:layout_marginTop
="5dip"
/>


    
<
TextView 
        
android:layout_width
="fill_parent"

        android:layout_height
="wrap_content"

        android:text
="This is a custom dialog"

        android:textColor
="#000000"

        android:layout_marginTop
="10dip"

        android:layout_marginLeft
="30dip"
/>

    
<
RelativeLayout 
        
android:layout_width
="fill_parent"

        android:layout_height
="wrap_content"

        android:paddingTop
="10dip"

        android:gravity
="bottom|center_horizontal"

        android:paddingBottom
="10dip"
>

        
<
Button 
            
android:id
="@+id/dialog_button_cancel"

            android:layout_alignParentLeft
="true"

            android:layout_width
="100dip"

            android:layout_height
="wrap_content"

            android:text
="确定"
/>

        
<
Button 
            
android:id
="@+id/dialog_button_ok"

            android:layout_width
="100dip"

            android:layout_height
="wrap_content"

            android:layout_toRightOf
="@id/dialog_button_cancel"

            android:layout_marginLeft
="35dip"

            android:text
="取消"
/>

    
</
RelativeLayout
>


</
LinearLayout
>

  最主要的,是自定义的Style,我们自定义一个式样,用来改变默认的Dialog样式

在values文件夹下新建一个styles.xml文件,如下。。。

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


<
resources
>

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

>

        
<item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item> 
        <item name="android:windowBackground">@drawable/dialog_bg</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>


    
</
style
>


</
resources
>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics