getDrawingCache gibt immer dieselbe Bitmap zurück

Ich arbeite gerade an einem Projekt, das einen Dialog mit einem Grayout-Hintergrund (schwarz / weiß) anzeigen soll. Um dies zu erreichen, mache ich einen Screenshot und der gesamten App, platziere diesen Screenshot auf dem Hintergrund des Vollbilddialogs und setze einen ColorFilter darauf, damit er ausgegraut wird.

Dies funktioniert zum ersten Mal einwandfrei, aber wenn ich im darunter liegenden Inhalt einen Bildlauf durchführe und den Dialog erneut anfordere, wird derselbe Hintergrund wie zuvor angezeigt.

Ich benutze den Code:

Bitmap bitmap;
View rootView = getActivity().getWindow().getDecorView().findViewById(android.R.id.content);
rootView.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(rootView.getDrawingCache());
rootView.setDrawingCacheEnabled(false);
imageView.setImageBitmap(bitmap);

Mit anderen Worten, der getDrawingCache () gibt immer den gleichen Screenshot der App zurück.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage