【Android】Dialog以及自定义Dialog
来源:互联网 发布:衣服布料淘宝 编辑:程序博客网 时间:2024/04/29 19:18
先准备自定义Dialog的三张图片素材:
背景图片dialog_bg.png:
标题图片dialog_title_image.png:
标题与内容的分割线图片lins.png:
下面贴代码。
自定义Dialog:
package com.zzj.ui.dialogdemo;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.widget.Button;import android.widget.TextView;import com.zzj.ui.R;public class MyDialog extends Dialog {private Button okBtn, cancelBtn;private TextView messageText;public MyDialog(Context context) {super(context, R.style.MyDialog);setContentView(R.layout.dialog);okBtn = (Button) findViewById(R.id.dialog_button_ok);cancelBtn = (Button) findViewById(R.id.dialog_button_cancel);messageText = (TextView) findViewById(R.id.message_text);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setCanceledOnTouchOutside(false);}/** * 确定事件 * * @param clickListener */public void setOKClick(android.view.View.OnClickListener clickListener) {okBtn.setOnClickListener(clickListener);}/** * 取消事件 * * @param clickListener */public void setCancelClick(android.view.View.OnClickListener clickListener) {cancelBtn.setOnClickListener(clickListener);}/** * 设置消息内容 * * @param text */public void setMessage(String text) {messageText.setText(text);}}
自定义Dialog布局文件:
<?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:id="@+id/message_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:text="This is a custom dialog" 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_ok" android:layout_alignParentLeft="true" android:layout_width="100dip" android:layout_height="wrap_content" android:text="确定"/> <Button android:id="@+id/dialog_button_cancel" android:layout_width="100dip" android:layout_height="wrap_content" android:layout_toRightOf="@id/dialog_button_ok" android:layout_marginLeft="35dip" android:text="取消"/> </RelativeLayout></LinearLayout>自定义Dialog样式:
<style name="MyDialog" parent="@android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <!-- 去掉系统自带的title --> <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>Activity测试类:
package com.zzj.ui.dialogdemo;import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Toast;import com.zzj.ui.R;public class CustomDialogActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.custom_dialog_activity);}public void click(View v) {switch (v.getId()) {case R.id.dialog_btn:Dialog dialog = new Dialog(this);dialog.setTitle("对话框");TextView textView = new TextView(this);textView.setText("这是一个最简单的对话框!");dialog.setContentView(textView);dialog.setCancelable(true);// 按回退键是否可取消对话框dialog.setCanceledOnTouchOutside(true);// 点击对话框外面是否取消对话框dialog.show();break;case R.id.coustom_dialog_btn:final MyDialog myDialog = new MyDialog(CustomDialogActivity.this);myDialog.setOKClick(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(CustomDialogActivity.this, "删除成功!",Toast.LENGTH_LONG).show();myDialog.dismiss();}});myDialog.setCancelClick(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(CustomDialogActivity.this, "您取消了删除!",Toast.LENGTH_LONG).show();myDialog.dismiss();}});myDialog.setMessage("确定删除?");myDialog.show();break;default:break;}}}Activity布局文件:
<?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:orientation="vertical" > <Button android:id="@+id/dialog_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="弹出简单对话框" /> <Button android:id="@+id/coustom_dialog_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="弹出自定义对话框" /> </LinearLayout>
运行效果:
1.系统自带的对话框。
2.自定义对话框。
0 0
- 【Android】Dialog以及自定义Dialog
- 自定义Dialog android Dialog
- Dialog对话框以及自定义Dialog
- Android中的Dialog的使用以及自定义Dialog
- android 系统Dialog,自定义Dialog
- Android 自定义Dialog以及参数的传递
- Android Dialog库内置Dialog以及各种动画.支持自定义Dialog和动画
- 自定义Dialog以及Dialog的相关问题
- 自定义Dialog以及Dialog之间跳转
- Dialog和自定义Dialog以及日期对话框
- android 自定义dialog 自定义dialog 宽度问题
- Android 自定义 dialog
- Android 自定义 dialog
- Android 自定义 dialog
- Android 自定义Dialog分类
- Android Dialog( 自定义对话框)
- Android自定义Dialog
- Android-自定义Dialog样式
- 如何使用DirectDraw直接显示YUV视频数据
- js实现兼容的本地化存储方案
- 关键字 'user' 附近有语法错误
- java 求无限循环小数的循环体/循环部分 project euler problem26
- java中判断字符串是否为数字的方法的几种方法
- 【Android】Dialog以及自定义Dialog
- vector, list, map在遍历时删除符合条件的元素
- MEME软件包的调试问题
- 控件类视图之UIControl的派生控件
- Hibernate注解
- selenium自动化测试自动点击优惠卷问题
- 看懂这道题,你就学会指针了!!!
- Java通过代理服务器上网
- Ubuntu 14.10安装SecureCRT 7.3