Dialog工具类
来源:互联网 发布:电脑编程多久能学会 编辑:程序博客网 时间:2024/06/08 04:43
一直在优化工具类的代码这个是现在使用的最终版,功能还是比较强大的
代码
CustomDialog .java
/** * @author :renpan * @version :v1.0 * @class : * @date :2014-04-12 15:47 * @description:弹出框类 */public class CustomDialog extends Dialog { private Context context; private ICustomDialog inflateData;//自己初始化adapter private int layoutResID;//弹出框的布局,默认为dialog_message /** * dialog的位置 -1为默认位置 */ private int gravity; /** * dialog的宽高比因子0-1之间 默认为0.8f、0.6f */ private float widthScale, heightScale; public CustomDialog(Context context, int layoutId, ICustomDialog inflateData) { this(context, layoutId, inflateData, 0.8f, 0.6f); } public CustomDialog(Context context, int layoutId, ICustomDialog inflateData, float widthScale, float heightScale) { this(context, layoutId, inflateData, widthScale, heightScale,-1); } /** * @param context * @param layoutId * @param inflateData * @param widthScale -1表示使用布局文件的自身宽度 * @param heightScale -1表示使用布局文件的自身高度 * @param gravity dialog所在的位置 如Gravity.Bottom */ public CustomDialog(Context context, int layoutId, ICustomDialog inflateData, float widthScale, float heightScale, int gravity) { super(context, R.style.Dialog); this.context = context; this.inflateData = inflateData; this.widthScale = widthScale; this.heightScale = heightScale; this.layoutResID = layoutId; this.gravity = gravity; setContentView(layoutResID); initData(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } private void initData() { setDialogSize(widthScale, heightScale); if (null != inflateData) { inflateData.inflateViewAndData(this); } } /** * 获取某一类型对象 * * @param viewId * @return */ public <T extends View> T f(int viewId) { return (T) findViewById(viewId); } /** * 设置dialog的宽高 */ private void setDialogSize(float widthScale, float heightScale) { Window dialogWindow = getWindow(); WindowManager.LayoutParams lp = dialogWindow.getAttributes(); DisplayMetrics d = context.getResources().getDisplayMetrics(); // 获取屏幕宽、高用 if (-1.0f != widthScale) { lp.width = (int) (d.widthPixels * widthScale); // 默认宽度设置为屏幕的0.8 } if (-1.0f != heightScale) { lp.height = (int) (d.heightPixels * heightScale); // 高度设置为屏幕的0.6 } if(-1 != gravity) { lp.gravity = gravity; } dialogWindow.setAttributes(lp); }}
ICustomDialog .java
/** * Created by renpan on 2015-04-12. * 辅助弹出框完成弹出界面的赋值问题 */public interface ICustomDialog { /** * 弹出框,处理弹出界面的赋值问题 * @param dialog promptDialog在此处类似于view */ public void inflateViewAndData(CustomDialog dialog);}
实现效果
下载地址
https://github.com/407365100/DialogDemo
0 0
- 自定义dialog+工具类
- Dialog工具类
- dialog工具类 强大!!!
- 项目中通用的Dialog工具类
- 4.dialog 工具
- Android的Dialog工具
- android中dialog工具类的实现(多种dialog的创建)
- 占位2——自定义Dialog,写工具类DialogUtils
- 高仿App--元贝驾考(二)Dialog工具类
- Linux下的dialog工具
- Linux下的dialog工具
- 迈向图形化:dialog工具
- Linux下的dialog工具 (转)
- Linux下的dialog工具 使用方法
- 图形化脚本1.dialog工具
- dialog类讲解
- dialog类讲解
- dialog activity管理类
- kinect1+depthimage_to_laserscan
- 项目实战-对象序列化
- leetcode Binary Tree Maximum Path Sum
- jsp实现文件下载
- 简单的C/C++内存泄漏及检测
- Dialog工具类
- Maven settings.xml的作用
- VS 2013 产品密钥
- Java进阶之路_重温《java编程思想》篇(二)
- AndroidStudio中build.gradle基本属性的简介
- UTF-8 Validation
- Chrome 控制台console的用法
- 视差cubmap(cubmap的进阶应用)
- Maven学习 (一) 搭建Maven环境