Проще говоря, чтобы избавиться от пустой области в диалоге, вы должны сделать фон диалога прозрачным, чтобы он мог отображать только используемую область. Попробуйте
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
или
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));