Android-Dialog风格Activity开发

1.设置窗口风格 : 

    ①在Manifest中设置主题属性android:theme="@android:style/Theme.Dialog",或者 Theme.Holo.Dialog.

    ②在Activity的onCreate方法中设置,必须在setContentView之前调用setTheme(android.R.style.Theme_Holo_Dialog)

 

使用Theme.Holo.Dialog为Android 4.X风格,效果较佳;而Theme.Dialog风格是2.X风格,较为落伍.

 

2.设置布局属性:

在调整界面的过程中,会发现Dialog风格的Activity和AlertDialog界面效果相差较大,这主要是因为AlertDialog使用了特性的属性.

例如:    

Button风格 : style="?android:attr/buttonBarButtonStyle"

Button外层Layout风格 : style="?android:attr/buttonBarStyle"

水平分割线 : android:background="?android:attr/dividerHorizontal"

内容字体字号 : android:textAppearance="?android:attr/textAppearanceMedium"

 

以下是样例:

<?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:gravity="center_horizontal"
    android:orientation="vertical" >

    <TextView        
        android:id="@+id/live_wallpaper_dialog_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:gravity="center_vertical|center_horizontal"
        android:text="This is Content"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View        
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="?android:attr/dividerHorizontal" />

    <LinearLayout        
        style="?android:attr/buttonBarStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:measureWithLargestChild="true" >

        <Button            
            android:id="@+id/live_wallpaper_dialog_cancel"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="cancel" />

        <Button            
            android:id="@+id/live_wallpaper_dialog_download"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="download" />
    </LinearLayout>
</LinearLayout>

 

 

 

3.如何设置点击空白处不退出Activity : 

AlertDialog​是设置setCanceledOnTouchOutside(false)来实现的.

而Activity是通过设置setFinishOnTouchOutside(false);来达到效果.

 

posted @ 2014-11-28 16:51  benhero  阅读(1070)  评论(0编辑  收藏  举报