自定义Dialog样式
来源:互联网 发布:java c3p0连接池使用 编辑:程序博客网 时间:2024/05/16 11:25
自定义Dialog样式
前言
平时项目开发总要自定义dialog满足产品的设计需求,但系统提供Dialog和AlertDialog用起来不是很方便,所以自己封装一个好用的Dialog基类是再好不过了。
实现:
BaseDialog.java
import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.view.View;import android.view.WindowManager;/** * Created by liuwen */public abstract class BaseDialog { protected Context context; private Dialog dialog; protected abstract int getDialogStyleId();//子类实现获取样式id protected abstract View getView();//子类实现内容布局View protected BaseDialog(Context context){ this.context=context; //初始化基础对话框 if (getDialogStyleId()==0){ dialog=new Dialog(context); }else { dialog=new Dialog(context,getDialogStyleId()); } //dialog设置内容布局view dialog.setContentView(getView()); //关闭系统键盘 dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); } /** * dialog设置能否点击取消,链式 */public BaseDialog setCancelable(boolean cacel){ dialog.setCancelable(cacel); return this;} /** * dialog显示,链式 */ public BaseDialog show(){ dialog.show(); return this; } /** * dialog消失,链式 */ public BaseDialog disMiss(){ dialog.dismiss(); return this; } /** * dialog是否在显示,链式 */ public boolean isShowing(){ return dialog.isShowing(); } /** * dialog消失监听,链式 */ public BaseDialog setOnDismissListener(DialogInterface.OnDismissListener dismissListener){ dialog.setOnDismissListener(dismissListener); return this; } /** * dialog取消监听,链式 */ public BaseDialog setOnCancelListener(DialogInterface.OnCancelListener cancelListener){ dialog.setOnCancelListener(cancelListener); return this; } /** * dialog显示监听,链式 */ public BaseDialog setOnShowListener(DialogInterface.OnShowListener onShowListener){ dialog.setOnShowListener(onShowListener); return this; }}YuanJiaoDialog.java/** * Created by liuwen . */public class YuanJiaoDialog extends BaseDialog { public YuanJiaoDialog(Context context) { super(context); } @Override protected int getDialogStyleId() { return R.style.dialog_style_one; } @Override protected View getView() { View view= LayoutInflater.from(context).inflate(R.layout.dialog_conent_layout,null); return view; }}dialog_style_one<style name="dialog_ios_style" parent="@android:style/Theme.Dialog"> <!--window 背景,这里可以设置整个窗体的背景,不过会被窗体里面的内容布局覆盖,圆角,窗体大小在某种情况下可以通过这里的背景设置--> <item name="android:windowBackground">@drawable/yuanjiao_background</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowFrame">@null</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowMinWidthMajor">100%</item> </style>yuanjiao_background.xml 窗体背景布局xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <size android:height="200dp" android:width="200dp"/> <corners android:radius="20dp"/> <solid android:color="@android:color/white" /></shape>
0 0
- Android-自定义Dialog样式
- Android 自定义Dialog样式
- Android dialog自定义样式
- 自定义dialog样式
- Android自定义Dialog样式
- 自定义Dialog样式
- Android 自定义Dialog样式
- 自定义dialog样式
- android自定义dialog样式
- 自定义dialog样式
- 自定义dialog的样式
- dialog 样式自定义详解
- android-自定义Dialog样式
- 自定义dialog样式
- 自定义Dialog样式
- android自定义Dialog样式
- 自定义dialog布局样式
- 自定义Dialog(自定义button样式)
- 送给正在找工作程序员,必须掌握的面试题
- iOS ”打仙人掌“游戏一---游戏玩法实现
- android代码.rc文件结构解析
- 什么是 Alpha、Beta、RC、Release版
- 基础练习 杨辉三角形
- 自定义Dialog样式
- opencv开发环境搭建
- P1118 [USACO06FEB]数字三角形Backward Digit Su…
- 基础的了解数据库的优化
- 侧滑菜单二
- In love folly is always sweet.
- StringUtils判断空的几个实用方法
- 求最大子数组和
- Android 2016新的技术简介