getDrawingCache gibt immer dieselbe Bitmap zurück

7

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.

    
Ben Groot 24.03.2014, 13:23
quelle

1 Antwort

21

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:

Löschen des Zeichnungscaches

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.

    
Nils Schlüter 24.03.2014, 13:28
quelle

Tags und Links