您的位置:首页 > 移动开发 > Android开发

Android中自定义Dialog

2015-06-16 16:09 399 查看
自定义对话框第一步(继承Dialog)

CustomdiaLog.java

package com.dialog.project.dialog;

import com.dialog.project.R;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;

/**
* 自定义dialog
*/
public class CustomDialog extends Dialog {

private Context context;

public CustomDialog(Context context) {
// 在构造参数中添加dialog的样式(此处不在使用系统的样式)
super(context, R.style.Dialog_Fullscreen1);
this.context = context;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = getLayoutInflater().inflate(R.layout.dialog_layout, null);
setContentView(view);
initView();
}

private void initView() {

/**************如在样式中设置了<item name="android:windowFullscreen">true</item>,以下的参数就无需设置,布局的大小可在布局文件中控制***********************************/
// 设置diglog的宽高
// Window dialogWindow = getWindow();
// WindowManager.LayoutParams lp = dialogWindow.getAttributes();
// DisplayMetrics d = context.getResources().getDisplayMetrics();
// lp.width = (int) (d.widthPixels); // 设置为屏幕宽度
// // (如没有设置 super(context,R.style.Dialog_Fullscreen);
// // 实际效果是左右各有填充,是系统样式设置的)
// dialogWindow.setAttributes(lp);
}

}


</pre><p></p><pre>
自定义对话框第二步(编写style文件)

Dialog_no_fullsreen style(该样式的Dialog默认不占满全屏,布局默认居中显示,如何设置大小,请参照上面)

<style name="Dialog_no_Fullscreen1" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item><!-- 此处去除的是diaglog标题栏 -->
</style>
Dialog_no_fullsreen style(该样式的Dialog默认占满全屏,无需设置dialog的布局参数)

 <style name="Dialog_Fullscreen" <span style="font-family: Arial, Helvetica, sans-serif;">parent="@android:style/Theme.Dialog"</span>>
        <item name="android:windowFullscreen">false</item>
        <!-- 设置dialog为全屏的 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 设置dialog没有标题栏 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Activity</item>
    </style>


注: <item name="android:windowNoTitle">true</item>设置该样式后(或未继承parent="@android:style/Theme.Dialog"该样式),对话框点击空白的地方,就不会自动消失。

以下贴出window style设置大全
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: