diálogo personalizado con botón de cerrar

Quiero crear un diálogo personalizado con el diseño como se muestra en la imagen. enter image description here El botón de cruce / cierre debe estar en el lado superior derecho. Sugiera cómo puedo lograr este tipo de diseño.

Gracias por adelantado.

podría estar debajo del código es útil para usted, logrado así

         

El diseño relativo será tu padre y luego agregar botón de cerrar aplica android:layout_alignParentRight="true" y android:layout_alignParentTop="true" e incluso da derecho y margen superior en menos según tu requerimiento.

Código

       

Salida

enter image description here

Aquí tengo una solución para eso. enter image description here

            

Puede usar PopupWindow aquí. Puede hacer un diseño para su diálogo personalizado y puede inflar ese diseño en PopupWindow. Debería ser algo como esto: –

 PopupWindow menuPopup; menuView=getLayoutInflater().inflate(R.layout.layout_menu, null); menuPopup=new PopupWindow(menuView, 200, 200, false); menuPopup.showAtLocation(menuView, Gravity.TOP | Gravity.RIGHT, 0, 100); 

Use esto para el diálogo personalizado …

  private PopupWindow pw; @SuppressWarnings("deprecation") private void initiatePopupWindow() { LayoutInflater inflater = (LayoutInflater) MainActivity.this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.popup, (ViewGroup) findViewById(R.id.btncancelcat)); WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); lp.width = WindowManager.LayoutParams.FILL_PARENT; lp.height = WindowManager.LayoutParams.WRAP_CONTENT; pw = new PopupWindow(layout, lp.width, lp.height, true); pw.showAtLocation(layout, Gravity.CENTER_VERTICAL, 0, 0); ImageButton btncancel = (ImageButton) layout.findViewById(R.id.btncancelcat); btncancel.setOnClickListener(cancel_click); } private OnClickListener cancel_click = new OnClickListener() { public void onClick(View v) { pw.dismiss(); } }; 

popup.xml

       

enter image description here

 ![anybody can try above all but u will be facing problem background color problem i have done very simple way                      
 the dialog must be like that 
  private void ChildSectionView() { final Dialog dialog = new Dialog(NewObservationActivity.this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.custom_dialog_obs_children); // Grab the window of the dialog, and change the width dialog.getWindow().setBackgroundDrawable( new ColorDrawable(android.graphics.Color.TRANSPARENT)); WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); Window window = dialog.getWindow(); lp.copyFrom(window.getAttributes()); Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); lp.width = size.x; lp.height = size.y; // This makes the dialog take up the full width window.setAttributes(lp); gridview = (GridView) dialog.findViewById(R.id.gridview_observation); ImageView icon_close = (ImageView) dialog.findViewById(R.id.icon_close); child_count = (TextView) dialog .findViewById(R.id.text_child_count_dialog); child_count.setText("Selected " + intList.size() + " more children"); SearchView searchview = (SearchView) dialog .findViewById(R.id.search_children); icon_close.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); searchview.setOnQueryTextListener(new OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String arg0) { // TODO Auto-generated method stub return false; } @Override public boolean onQueryTextChange(String string) { filItemAdapter("N", string); return false; } }); filItemAdapter("", ""); dialog.show(); } 

Nota :——-

 the relative layout background should be transparent and dialog background also dialog.getWindow().setBackgroundDrawable( new ColorDrawable(android.graphics.Color.TRANSPARENT));][2] 

Agregue un botón con ese fondo y establezca la posición alignParentTop y alignParentRight en verdadero. Y haga que el diseño primario sea Relative .