1. 程式人生 > >一個android的dialog框架

一個android的dialog框架

 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