How to create a Custom Dialog box in android?

后端 未结 22 3413
囚心锁ツ
囚心锁ツ 2020-11-21 07:06

I want to create a custom dialog box like below

\"enter

I have tried the foll

22条回答
  •  天命终不由人
    2020-11-21 07:54

    A simple way to show custom dialog properly with this code

    dialog_choose_photo.xml

    
    
    
    
    
        
    
            
    
            
    
            
        
    
        
    
            
        
    
    
    
    
    
    
    

    Just call this function

     public void openPhotoDialog() {
        final Dialog dialog = new Dialog(this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.dialog_choose_photo);
        dialog.setCancelable(true);
    
        // Setting dialogview
    
        final Window window = dialog.getWindow();
        window.setLayout(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        WindowManager.LayoutParams wlp = window.getAttributes();
    
        wlp.gravity = Gravity.BOTTOM;
        window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        window.setDimAmount(0.5f);
        window.setAttributes(wlp);
    
    
        TextView txt_camera = dialog.findViewById(R.id.txt_camera);
        TextView txt_gallery = dialog.findViewById(R.id.txt_gallery);
        TextView txt_cancel_dialog = dialog.findViewById(R.id.txt_cancel_dialog);
    
        txt_camera.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
                dialog.dismiss();
            }
        });
        txt_gallery.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
                dialog.dismiss();
            }
        });
        txt_cancel_dialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
                dialog.dismiss();
            }
        });
    
        dialog.show();
    
    }
    

    bg_dialog_smallround_white.xml drawable resource

    
    
    
    
    
    
    

提交回复
热议问题