Ich arbeite gerade an einem Projekt, das einen Dialog mit einem grauen (schwarz / weißen) Hintergrund anzeigen soll. Um dies zu erreichen, mache ich einen Screenshot und die gesamte App, platziere diesen Screenshot auf dem Hintergrund des Vollbilddialogs und lege einen ColorFilter darauf, um ihn grau zu machen.
Dies funktioniert zum ersten Mal perfekt, aber wenn ich im darunterliegenden Inhalt scrolle und den Dialog erneut anfordere, zeigt er genau den gleichen Hintergrund wie der vorhergehende.
Ich benutze den Code:
%Vor%Mit anderen Worten, der getDrawingCache () gibt immer den gleichen Screenshot der App zurück.
Ich denke, das liegt daran, dass sich Ihre alte Bitmap immer noch in Ihrem Zeichnungscache befindet. Aus diesem Grund müssen Sie es zuerst aus dem Cache löschen und dann das neue Image in den Cache stellen. Sehen Sie sich diese Frage an, die zum selben Thema gehört:
BEARBEITEN: Also, hier ist der Code, der für mich arbeitet. Ich benutze eine Schaltfläche, um die Bitmap zu speichern und dann die Bitmap auf eine Bildansicht zu setzen:
%Vor% So funktioniert es:
Jedes Mal, wenn der Benutzer auf die Schaltfläche klickt, wird alles in rootView
als Bitmap gespeichert und dann in imageView
gezeichnet.
Sie können natürlich die captureScreen-Methode von überall in Ihrem Code aufrufen, wenn Sie müssen.
Ich hoffe, dieses Beispiel hilft Ihnen.