首页 > 代码库 > 蒙版弹出框效果

蒙版弹出框效果

技术分享

自定义

package cn.lxsdb.yyd.app.dialog;  
  
import cn.lxsdb.yyd.app.R;  
import cn.lxsdb.yyd.app.constants.AppIntent;  
import android.app.Dialog;  
import android.content.Context;  
import android.content.Intent;  
import android.os.Bundle;  
import android.view.MotionEvent;  
import android.view.View;  
import android.view.Window;  
import android.view.WindowManager.LayoutParams;  
import android.widget.ImageButton;  
  
public class RegisterDialog extends Dialog implements  
        android.view.View.OnClickListener {  
  
    private ImageButton cancel;  
    private ImageButton experienceNow;  
    Context context;  
    View registerView;  
      
  
    public RegisterDialog(Context context) {  
        super(context);  
        this.context = context;  
    }  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
  
        // 这句代码换掉dialog默认背景,否则dialog的边缘发虚透明而且很宽  
        // 总之达不到想要的效果  
        getWindow().setBackgroundDrawableResource(android.R.color.transparent);  
        registerView = View.inflate(this.context, R.layout.layout_register_dialog, null);  
        setContentView(registerView);  
        // 这句话起全屏的作用  
        getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);  
  
        initView();  
        initListener();  
    }  
  
    @Override  
    public boolean onTouchEvent(MotionEvent event) {  
        this.dismiss();  
        return super.onTouchEvent(event);  
    }  
  
    private void initListener() {  
        cancel.setOnClickListener(this);  
        experienceNow.setOnClickListener(this);  
    }  
  
    private void initView() {  
        cancel = (ImageButton) findViewById(R.id.ib_close);  
        experienceNow = (ImageButton) findViewById(R.id.ib_register_now);  
  
    }  
  
    public void onClick(View v) {  
        switch (v.getId()) {  
        case R.id.ib_close:  
            this.dismiss();  
            break;  
        case R.id.ib_register_now:  
            // 注册  
            Intent intent = AppIntent.getRegPhoneActivity(this.context);  
            context.startActivity(intent);  
            this.dismiss();  
            break;  
        }  
    }  
}  

  

用法如下:

new RegisterDialog(mContext).show();

  

 

蒙版弹出框效果