Android 通用Dialog 框架、可定位顯示

項目地址:https://github.com/xianningqis/EasyDialog

在此先感謝 https://github.com/luoshihai/XXDialog 作者

 

一個通用dialog ,有常用進出場動畫,也有定位view位置顯示動畫(基本上常用動畫都有)

擁有dialog常用效果與popupwindow 在某個view的上下左右方位顯示的特性

效果

添加依賴

在project目錄的build.gradle的allprojects節點添加 java maven { url "https://jitpack.io" } 如下:

    allprojects {
        repositories {
            jcenter()
            maven { url "https://jitpack.io" }
        }
    }

    dependencies {
        implementation 'com.github.xianningqis:EasyDialog:0.0.1'
    }

開始使用 

1.使用例子,詳細請看demo

    new EasyDialog(this, R.layout.dialog_more_view) {//設置自己的自定義佈局文件
                    @Override
                    public void onBindViewHolder(DialogViewHolder holder) {
                        //這裏獲取佈局控件,並對其進行綁定與操作
                    }
                }.backgroundLight(0.2)
                        .setCanceledOnTouchOutside(false)
                        .setCancelAble(true)
                        .setViewBottom(view)
                        .setCustomAnimations(AnimatorHelper.TOP_IN_ANIM, AnimatorHelper.TOP_OUT_ANIM)
                        .showDialog();

 2. EasyDialog 的Api

showDialog() 顯示dialog
dismiss()  銷燬
setCancelAble(boolean cancel) 設置能否被取消
setCanceledOnTouchOutside(boolean cancel) 設置點擊其他地方能否被取消
backgroundLight(double light) 彈出時背景亮度 值爲0.0~1.0    1.0表示全黑  0.0表示全白
fromBottomToMiddle() 從底部一直彈到中間
fromBottom() 從底部彈出 顯示在底部
fromLeftToMiddle() 從左邊一直彈到中間退出也是到左邊
fromRightToMiddle() 從右邊一直彈到中間退出也是到右邊
fromTop() 從頂部彈出 從頂部彈出  保持在頂部
fromTopToMiddle() 從頂部談到中間  從頂部彈出  保持在中間
showDialog( int style) 顯示一個Dialog自定義一個彈出方式  具體怎麼寫 可以模仿上面的
showDialog(boolean isAnimation) 如果爲true 就顯示默認的一個縮放動畫
fullScreen() 全屏顯示
fullWidth() 全屏寬度
fullHeight() 全屏高度
setWidthAndHeight(int width, int height) 自定義寬高
setOnKeyListener(DialogInterface.OnKeyListener onKeyListener) 當dialog彈出是 按鍵的點擊事件會被dialog獲取
setDialogDismissListener(OnDismissListener listener) 設置dismiss監聽
setOnCancelListener(OnCancelListener listener) 設置取消監聽

setViewTop(View view)在xx上方
setViewBottom(View view)在xx下方
setViewLeft(View view)在xx左方
setViewRigh(View view)在xx右方
setViewLeftBottom(View view)在xx左下方
setViewRighBottom(View view)在xx右下方
setViewLeftTop(View view)在xx左上方
setViewRighTop(View view)在xx右上方
setCustomAnimations(final int inAnimType, int outAnimType)設置自定義進場和出場動畫

AnimatorHelper.java //應對自定義顯示位置進出場動畫,dialog樣式動畫無法滿足該要求,因此需要自定義動畫
//==========================透明度漸變==========================
    public final static int ALPHA_IN_ANIM = 100;
    public final static int ALPHA_OUT_ANIM = 101;

    public final static int TOP_ALPHA_IN_ANIM = 103;
    public final static int TOP_ALPHA_OUT_ANIM = 104;

    public final static int BOTTOM_ALPHA_IN_ANIM = 105;
    public final static int BOTTOM_ALPHA_OUT_ANIM = 106;

    public final static int LEFT_ALPHA_IN_ANIM = 107;
    public final static int LEFT_ALPHA_OUT_ANIM = 108;

    public final static int RIGHT_ALPHA_IN_ANIM = 109;
    public final static int RIGHT_ALPHA_OUT_ANIM = 110;

    //==========================縮放==========================
    public final static int ZOOM_ALPHA_IN_ANIM = 200;
    public final static int ZOOM_ALPHA_OUT_ANIM = 201;

    public final static int ZOOM_IN_ANIM = 202;
    public final static int ZOOM_OUT_ANIM = 203;

    public final static int DELAYED_ZOOM_IN_ANIM = 204;
    public final static int DELAYED_ZOOM_OUT_ANIM = 205;

    //==========================推入==========================
    public final static int TOP_IN_ANIM = 300;
    public final static int TOP_OUT_ANIM = 301;

    public final static int BOTTOM_IN_ANIM = 302;
    public final static int BOTTOM_OUT_ANIM = 303;

    public final static int LEFT_IN_ANIM = 304;
    public final static int LEFT_OUT_ANIM = 305;

    public final static int RIGHT_IN_ANIM = 306;
    public final static int RIGHT_OUT_ANIM = 307;

    //==========================圓形==========================
    public final static int CIRCULAR_REVEAL_IN_ANIM = 400;
    public final static int CIRCULAR_REVEAL_OUT_ANIM = 401;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章