一个android的dialog框架

来源:互联网 发布:js 数组 splice 删除 编辑:程序博客网 时间:2024/06/08 20:08

AndroidSuperDialog

基于DialogFragment封装,支持自定义边框圆角、背景透明度、字体大小与色值等。 列表选择框可以接收ListArrays的数据源,。 初衷是掌握知识点,此库不一定适合你的产品整体风格,当然能够适合你的项目最好不过,有建议和不足之处欢迎骚扰,话不多说先上图。


android studio中

引入

 compile 'com.mylhyl:superDialog:1.0.11'

使用

简单的对话框

                new SuperDialog.Builder(this).setRadius(10)                        .setAlpha(0.5f)                        .setTitle("标题").setMessage("可以看到?")                        .setPositiveButton("确定", new SuperDialog.OnClickPositiveListener() {                            @Override                            public void onClick(View v) {                                Toast.makeText(v.getContext(), "点了确定", Toast.LENGTH_LONG).show();                            }                        }).build();

选择对话框

                //final String[] strings = {"拍照", "从相册选择", "小视频"};                List<People> list = new ArrayList<>();                list.add(new People(1,"拍照"));                list.add(new People(2,"从相册选择"));                list.add(new People(3,"小视频"));                new SuperDialog.Builder(this)                        //.setAlpha(0.5f)                        //.setGravity(Gravity.CENTER)                        //.setTitle("上传头像", ColorRes.negativeButton)                        .setCanceledOnTouchOutside(false)                        .setItems(list, new SuperDialog.OnItemClickListener() {                            @Override                            public void onItemClick(int position) {                                Toast.makeText(MainActivity.this, strings[position], Toast.LENGTH_LONG).show();                            }                        })                        .setNegativeButton("取消", null)                        .build();
  • 宽度setWidth(@FloatRange(from = 0.0, to = 1.0) float width)
  • 边距setPadding(int left, int top, int right, int bottom)
  • 动画setWindowAnimations(int animStyle)
  • 列表框距离下方按钮的间距setItemsBottomMargin(int bottomMargin)
  • 指定位置显示setShowAtLocation(int gravity, int x, int y)
  • 设置背景是否昏暗setDimEnabled(boolean dimEnabled)
  • setConfigDialog更多使用
    .setConfigDialog(new SuperDialog.ConfigDialog() {        @Override        public void onConfig(Dialog dialog, Window window, WindowManager                .LayoutParams wlp, DisplayMetrics dm) {            window.setWindowAnimations(R.style.dialogWindowAnim);//动画            wlp.y = 100;//底部距离        }    })

说明

* 此库自动将px转换百分比,由于 Dialog 布局一般只有微调,暂时只支持textSize,height,padding* 默认字体大小;Title、message、button、padding 的px在设计稿为 1080 * 1920 的尺寸* 所以使用时设计稿尺寸一定是1080 * 1920
github地址:https://github.com/mylhyl/AndroidSuperDialog

0 0