J'essaie d'avoir un arrière-plan flou derrière un AlertDialog. Le processus se déroule comme suit: prenez une capture d'écran de l'activité et brouillez-la et enregistrez-la dans un bitmap. Puis convertir cette bitmap en un drawable. Ensuite, je définis l'arrière-plan dessinable de la fenêtre de l'alerte en utilisant cette ligne de code renameDialog.getWindow().setBackgroundDrawable(draw);
Le problème est que la boîte de dialogue s'affiche uniquement en haut de l'écran même si je force un certain emplacement en spécifiant des paramètres de mise en page. J'ai remarqué que si j'ai changé setBackgroundDrawable
à setBackgroundDrawableResource
et lui donner un dessin existant, alors la boîte de dialogue est affichée à l'emplacement spécifié.Boîte de dialogue avec un arrière-plan flou à certaines positions
Que faut-il faire pour que le setBackgroundDrawable
puisse être utilisé avec un emplacement spécifié dans la boîte de dialogue?
Merci!
AlertDialog renameDialog = new AlertDialog.Builder(this).create();
LayoutInflater factory = LayoutInflater.from(this);
deleteDialogView = factory.inflate(R.layout.dialog_rename_playlist, null);
//Getting Blurry screenshot to display it behind dialog
Bitmap backgroundScreenshot = Utils.takeScreenShot(PlaylistActivity.this);
Bitmap blurryBackground = Utils.getBlurredBitmap(backgroundScreenshot, 30);
WindowManager.LayoutParams wmlp = renameDialog.getWindow().getAttributes();
wmlp.gravity = Gravity.CENTER_VERTICAL;
wmlp.x= 100;
wmlp.y= 100;
final Drawable draw=new BitmapDrawable(getResources(), blurryBackground);
renameDialog.getWindow().setBackgroundDrawable(draw);
renameDialog.getWindow().setAttributes(wmlp);
renameDialog.setView(deleteDialogView, 0, 0, 0, 0);
renameDialog.show();
Avez-vous essayé d'installer backround comme dernière action sur la boîte de dialogue? – wasyl
Essayez cette bibliothèque: [Fragment de dialogue flou] (https://github.com/tvbarthel/BlurDialogFragment) –
@wasyl oui je l'ai fait, cela n'a pas fonctionné. Je crois que le problème a aussi à voir avec le style. –