Вы можете создать собственный класс диалога с пользовательским макетом, в свой макет положить cardView или любой другой вид с тенью.
Это будет ваш класс диалога (или что-то подобное, этотолько пример):
public class FullSizeImageDialog extends Dialog {
private ImageView imageView;
private ProgressBar fullImageProgreesBar;
private Context dialogContext;
public FullSizeImageDialog(@NonNull Context context) {
super(context);
setContentView(R.layout.full_size_image_dialog);
dialogContext = context;
imageView = findViewById(R.id.full_size_image);
fullImageProgreesBar = findViewById(R.id.fullImageProgreesBar);
}
}
А это ваш макет для диалога (R.id.full_size_image
в моем случае):
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--Place your views here-->
</android.support.constraint.ConstraintLayout>
Теперь все осталосьДля этого нужно либо использовать вид карты, либо отметить этот поток , говорящий о тенях на видах.
А когда вы хотите показать свой диалог, это очень просто:
FullSizeImageDialog dialog = new FullSizeImageDialog ();
dialog.show();