实现自己的DialogBuilder封装:大小、显示位置和动画
来源:互联网 发布:淘宝香水四大靠谱点 编辑:程序博客网 时间:2024/05/13 16:31
简单介绍
- 借助系统的Dialog和Window对象实现
- 将Dialog分为三个部分title、content、bottom。给对应的部分设置View才会显示,否则不显示 。
- 提供:绝对值,屏幕宽高百分比设置Dialog窗口的宽高
- 提供:设置Dialog出现位置,支持左,左上….左下等8个位置控制
- 提供:约束Dialog出现位置,通过指定View的参考点和Dialog的参考点
- 提供方法设置出现、消失动画
DialogBuilder 使用例子
对照 GIF 第一个展示
SimpleDialogBuilder 是 DialogBuilder 的派生类,牺牲一定的定制能力更简单便捷的使用。
setLayoutParamsByPercent(…):根据屏幕宽、高百分比设置Dialog的具体宽高
new SimpleDialogBuilder(this) .setTitle("Simple DialogBuilder Test") .setContent("This is a Dialog.\nThis is a Dialog.\nThis is a Dialog.\nThis is a Dialog.") .setPositiveButton("知道了", new View.OnClickListener() { @Override public void onClick(View v) { NotifyUtils.toast("知道了"); } }) .setLayoutParamsByPercent(0.7f, 0.3f) .build() .show();
对照 GIF 第二个展示
setLayoutGravity(…):指定 Dialog 显示在屏幕的位置
new DialogBuilder(this) // 设置布局,并在回调中国 View 数据和动作 // setTitleLayout()、setBottomLayout() 使用方式类似 .setContentLayout(R.layout.v_dialog_menu, new DialogBuilder.ViewCreatorCallback() { @Override public void onViewCreated(View view, Dialog dialog) {// view.findViewById(R.id.xxx).setOnClickListener(onClicker); } }) .setAnimations(R.style.DialogAnimationStyle1) .setLayoutParams(ViewUtils.dp2px(150), ViewUtils.dp2px(300)) .setLayoutGravity(Gravity.END | Gravity.TOP) .build() .show();
对照 GIF 第三个展示
setDisplayLocation(…):根据指定 TargetView ,并分别设置 TargetView 的参考点和 Dialog 的参考点来确定Dialog的显示位置
setAnimations(…):设置Dialog的出现动画
new DialogBuilder(this) .setContentLayout(R.layout.v_dialog_menu, null) .setAnimations(R.style.DialogAnimationStyle2) .setLayoutParams(ViewUtils.dp2px(150), ViewUtils.dp2px(30)) .setDisplayLocation(tvText3, DialogBuilder.POINT_END_BOTTOM, DialogBuilder.POINT_END_TOP) .build() .show();
完整代码在github,里面还有更多功能哦
阅读全文
0 0
- 实现自己的DialogBuilder封装:大小、显示位置和动画
- android动态控制组件的位置、大小和新的动画
- android中改变dialog的显示的位置和大小
- Android PopupWindow显示位置和显示大小
- Android PopupWindow显示位置和显示大小
- qt显示视频大小和位置
- SDK实现自动改变控件位置和大小的函数
- 固定大小容器中显示图片,图片缩放后显示中间位置,不变型的实现。
- Android 创建指定位置和大小的PopupWindow,带进入和退出动画
- 使用自定义button自己设定button的图片和title的位置和大小
- PopupWindow 显示位置 大小的设置
- 关于百度地图显示自己的位置
- 使用百度地图 显示自己的位置
- 单文档界面指定位置显示指定大小的文字(汉字和英文)
- swift空间位置,大小改变的动画效果
- Android 位置,大小,旋转,透明度改变的补间动画
- symbian下利用基站实现定位,显示地图中自己的位置
- mfc动态改变对话框窗口大小和显示位置
- 脚本学习(1)——触动精灵 函数
- linux使用rinetd快速实现端口转发
- rcnn-fast-rcnn--faster-rcnn 对比及相关原理解释
- 程序人生 | 程序员感觉技术停滞了怎么办?找个师傅引导架构之路
- C++异常处理 try catch throw
- 实现自己的DialogBuilder封装:大小、显示位置和动画
- 获取相差的月份数量
- ubuntu下vi方向键变成ABCD,解决方法
- 苹果Mac操作系统下怎么显示隐藏文件
- Kali Linux Wine32英文字体不显示问题
- js动态添加tr表格
- 一个项目引用不同版本dll
- ActiveMq深入学习 第二波
- postgresql 日志中报xlog目录中文件找不到