自定义Dialog
应用场景:自定义Dialog
效果图:
1.创建Dialog对象
代码如下:
Dialog dialog = new Dialog(CustomDialogActivity.this, R.style.CustomDialog);
注:
创建Dialog对象时,需传入两个参数:
第一个参数是:Activity对象;
第二个参数是:自定义的对话框style,它指向的是values文件夹下styles.xml文件中的如下代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 自定义Dialog -->
<style
name="CustomDialog"
parent="@android:Theme.Dialog">
<!--windowFrame框为无 -->
<item
name="android:windowFrame">@null</item>
<!-- 没有标题栏 -->
<item
name="android:windowNoTitle">true</item>
<!-- 除去背景 -->
<item
name="android:windowBackground">@null</item>
<!--是否浮现在activity之上 -->
<item
name="android:windowIsFloating">true</item>
<!-- 是否半透明 -->
<item
name="android:windowIsTranslucent">false</item>
<!-- 去掉覆盖层 -->
<item
name="android:windowContentOverlay">@null</item>
<!-- 设置背景颜色 -->
<item
name="android:background">#262626</item>
</style>
</resources>
2.在layout文件夹下创建dialog_view.xml文件
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000">
<TextView
android:id="@+id/promptTv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15.0dip"
android:gravity="center"
android:textSize="16.0sp"
android:textColor="#FFFFFF"
android:text="@string/promptText"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="20.0dip"
android:paddingBottom="20.0dip"
android:gravity="center">
<Button
android:id="@+id/dialog_positive_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ok"/>
<Button
android:id="@+id/dialog_negative_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"/>
</LinearLayout>
</LinearLayout>
注:然后,将布局文件设置到Dialog。
代码如下:
dialog.setContentView(R.layout.dialog_view);// 为对话框设置自定义布局
3.对Window对象进行自定义设置
代码如下:
Window window = dialog.getWindow();// 获取Window对象
window.setGravity(Gravity.CENTER);// 居中显示
window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口动画
window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
注:对话框动画实现代码如下(代码在values文件夹下styles.xml文件中):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Dialog动画 -->
<style
name="dialogWindowAnim"
parent="android:Animation">
<!-- 进入时的动画 -->
<item
name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
<!-- 退出时的动画 -->
<item
name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
</style>
</resources>
4.最后调用show方法显示Dialog。
代码如下:
dialog.show();
posted on 2012-09-24 18:32 Harvey Ren 阅读(775) 评论(1) 编辑 收藏 举报