自定义dialog
来源:互联网 发布:德州扑克 技巧 知乎 编辑:程序博客网 时间:2024/05/22 08:13
简单的自定义
自定义dialog首先要继承系统的dialog类,要求必须有一个构造方法 我们使用2个参数的构造方法,在源码中一个参数的调用2个参数的构造,3个参数的构造调用3个参数的构造,
在第三个构造方法中,会解析一个系统的样式,我们使用第二个构造方法就是为了让系统解析我们定义的样式
public Mydialog(Context context) { super(context,R.style.MydialogTheme); mContext = context;}
super走父类的构造方法,传进去一个样式,让系统解析我们的样式
系统的dialog构造方法代码,如果有传进来的样式就会解析传进来的样式
Dialog(@NonNull Context context, @StyleRes int themeResId, boolean createContextThemeWrapper) { if (createContextThemeWrapper) { if (themeResId == 0) { final TypedValue outValue = new TypedValue(); context.getTheme().resolveAttribute(R.attr.dialogTheme, outValue, true); themeResId = outValue.resourceId; } mContext = new ContextThemeWrapper(context, themeResId); } else { mContext = context; }
要传什么样式?找到系统的dialog使用的样试,复制过来根据需求修改下就可以用了
<style name="MydialogTheme" parent="Base.Theme.AppCompat.Light"> <!--是否是浮动显示--> <item name="android:windowIsFloating">true</item> <!--背景颜色--> <item name="android:windowBackground">@android:color/black</item> <!--设置动画--> <item name="android:windowAnimationStyle">@style/AnimationDialog</item></style><!--自定义dialog的动画--><style name="AnimationDialog"> <item name="android:windowEnterAnimation">@anim/dialog_enter</item><!--进入动画--> <item name="android:windowExitAnimation">@anim/dialog_exit</item><!--出去动画--></style>
然后是进出动画
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:fromXDelta="0" android:toXDelta="0" android:fromYDelta="100%p" android:toYDelta="0" android:duration="1000" android:interpolator="@android:anim/anticipate_overshoot_interpolator" /></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:interpolator="@android:anim/anticipate_overshoot_interpolator" android:fromXDelta="0" android:toXDelta="0" android:fromYDelta="0" android:toYDelta="-100%p" android:duration="1000" /></set>
最后在要显示的地方显示出来
@Overridepublic void onClick(View v) { Mydialog dialog = new Mydialog(this); dialog.setCanceledOnTouchOutside(true); dialog.show();}
0 0
- 自定义Dialog---继承Dialog
- 自定义Dialog android Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义dialog
- 自定义 Dialog
- 自定义dialog
- 自定义 dialog
- 自定义Dialog
- 自定义 Dialog
- 自定义Dialog
- 自定义dialog
- 自定义Dialog
- 自定义 Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义Dialog
- SSL 1222_矩形_并差集
- Print Article HDU 3507 斜率优化
- 图.邻接列表表示法
- 集合泛型
- 【Archlinux字符界面配置】Archlinux更改网络接口名
- 自定义dialog
- div居中方法汇总
- 手把手教你实现SVM算法
- 2001年分区联赛提高组之一 一元三次方程求解 1015
- SSL JudgeOnline 2253——新型计算器
- 取余运算 SSL1422
- iOS - 关于NSTimer的循环引用
- Android 工程项目改名[Eclipse]
- Memcached概念、作用、运行原理、特性、不足简单梳理