仿IOS样式对话框

来源:互联网 发布:网络黄金egd还有希望吗 编辑:程序博客网 时间:2024/06/05 17:28

效果图如下:



实现上述功能所需步骤:

步骤一:自定义Dialog,并继承Dialog

public class DrinkWateDialog extends Dialog {    private static int default_width = 160; // 默认宽度    private static int default_height = 120;// 默认高度    private boolean noBackPressed = false;    public DrinkWateDialog(Context context, View layout, int style) {        this(context, default_width, default_height, layout, style);    }    public DrinkWateDialog(Context context, int width, int height, View layout, int style) {        super(context, style);        // 加载布局        setContentView(layout);        // 设置Dialog参数        Window window = getWindow();        WindowManager.LayoutParams params = window.getAttributes();        params.gravity = Gravity.CENTER;        window.setAttributes(params);    }    /**     * 设置返回键     *     * @param b     */    public void setBackPressed(boolean b) {        noBackPressed = b;    }    @Override    public void onBackPressed() {        if (!noBackPressed) {            super.onBackPressed();        }    }}

步骤二:显示dialog,并为每个内容添加点击事件

 btn= (Button) findViewById(R.id.btn);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                showDialog();            }        });    }    public  void  showDialog(){        View view = View.inflate(this, R.layout.drinkwater_dialog, null);        DrinkWateDialog kCornerDialog = new DrinkWateDialog(this, 0, 0, view, R.style.DrinkWateTextViewDialog);        kCornerDialog.show();    }   public  void  tvOnClick(View view){       switch (view.getId()){           case  R.id.tv_1:               break;           case  R.id.tv_2:               break;           case  R.id.tv_3:               break;           case  R.id.tv_4:               break;       }   }

好了,完成

源码下载地址:http://download.csdn.net/detail/k2514091675/9912648




原创粉丝点击