I know it's very old question but this will help out surely to someone who is using AppCompatActivity or ActionBarActivity. If you are setting a dialog to your activity or say DialogActivity then also the below will work!
    dialog = new Dialog(ActivityName.this);
    dialog .setCancelable(false);
    dialog .setContentView(R.layout.dialog_layout);
    Window window = dialog.getWindow();
    if(window != null){
       window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
       window.setDimAmount(0.5f);
       //If you are setting a dialog activity
            DisplayMetrics displayMetrics = new DisplayMetrics();
          getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
            Double dialogWidth = displayMetrics.widthPixels * 0.50;
            window.setLayout(dialogWidth.intValue(), 
                 WindowManager.LayoutParams.WRAP_CONTENT); //Setting it cover half of the screen width
   }
   dialog.show();
Just before you dismiss the dialog,
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dialog.dismiss();
//If you are setting a dialog activity, create a style in styles.xml: 
<style name="MyTheme" parent="@style/Theme.AppCompat.Light.Dialog">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:backgroundDimEnabled">false</item>
</style>
And in your Manifest, set the theme:
<activity android:name=".view.POSSelectCustomerDialogActivity"
  android:theme="@style/MyTheme"
  android:windowSoftInputMode="stateAlwaysHidden|adjustResize"/>