Obawiam się, że mam już niefortunną odpowiedź na to pytanie, ale na wszelki wypadek ... Używam SurfaceView do przetwarzania obrazu z bitmapami (modyfikacje świateł i kolorów) i musiałbym zaimportować zmodyfikowaną bitmapę (tj. zawartość SurfaceView) w nowej bitmapie, aby móc ją zapisać jako plik obrazu.Android: tworzenie mapy bitowej z zawartością SurfaceView
Rozglądałem się i wydaje mi się, że możliwe jest uzyskanie bitmapy z View.getDrawingCache(), ale nie działa ona z SurfaceView. Dostaję tylko pustą bitmapę.
Czy istnieje rozwiązanie tego problemu?
Dzięki
Chciałem użyć tego rozwiązania, ale nie jest to możliwe w SurfaceViews, ponieważ proces rysowania odbywa się w wątku, a płótno jest uzyskiwane z SurfaceHolder. Jest używany w następujący sposób: canvas = surfaceHolder.lockCanvas (null); zsynchronizowany (surfaceHolder) {doDraw (canvas); } –
Problem rozwiązany. Zmieniłem SurfaceView na prosty niestandardowy widok. Następnie włączając drawingCache (setDrawingCacheEnabled (true)) podczas tworzenia widoku, jestem w stanie pobrać bitmapę wywołującą metodę getDrawingCache(). –
dla twojego pierwszego komentarza, czy nie możesz po prostu wywołać doDraw z płótnem opartym na bitmapie? 'if (screenGrab) {doDraw (c_fromMyPost); } else {doDraw (canvas_fromYourApp); } ' – idbrii