Android中实现自定义弹框

在开发中,UI总是设计出各种好看的弹框给我们,希望我们使用这些好看的弹框,制作出好看的APP界面,这里就给大家提供一种自定义弹框的方法。

  • Activity的布局

    
  • 注:这里就一个按钮,没什么好说的
  • custom_dialog.xml dialog的自定义布局


    

    

    

        
  • Activity内的写法,包括dialog构建和大小的自定义
public class MainActivity extends BaseActivity implements View.OnClickListener {

    private Button button;
    private AlertDialog dialog;
    private Button bt_sure;
    private Button bt_cancel;

    @Override
    protected int getContentLayoutId() {
        return R.layout.activity_main;
    }

    @Override
    protected void initWidget() {
        super.initWidget();
        //Activity按钮的初始化
        button = findViewById(R.id.button);
        //这里开始是Dialog的代码
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        View view = View.inflate(this, R.layout.custom_dialog, null);
        //Dialog中控件的初始化
        bt_sure = view.findViewById(R.id.bt_sure);
        bt_cancel = view.findViewById(R.id.bt_cancel);
        //点击事件可以统一在Activity中写
        bt_sure.setOnClickListener(this);
        bt_cancel.setOnClickListener(this);
        builder.setView(view);
        builder.setCancelable(true);
        dialog = builder.create();
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.show();
                //这里开始修改dialog的尺寸
                android.view.WindowManager.LayoutParams p = dialog.getWindow().getAttributes();
                p.height = 900;
                p.width =  700;
                dialog.getWindow().setAttributes(p);
                Window window = dialog.getWindow();
            }
        });
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_sure:
                Toast.makeText(this,"确定",Toast.LENGTH_SHORT).show();
                break;
            case R.id.bt_cancel:
                Toast.makeText(this,"取消",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

这样,我们就实现了自定义弹框的目的。是不是很简单。 

你可能感兴趣的:(Android基础)