Cel:Przekazanie Rysunek/Malarstwo/Zapisywanie wielu bitmap
chcę zwrócić/zapisu/farby na bitmapy z plików PDF i zapisywać je razem więc mogę wysłać do nich e-mail.
Szczegóły:
mam wiele Pdf
pliki zawierające 5-20
stron każdy, teraz jestem wydobycia bitmap z pdfs
i ładuje je we fragmentach w ViewPager
, gdzie mogę swipe przez nich i napisać/narysować lub cokolwiek Chcę. Aby zapisać/przywrócić bieżący stan bitmapy, używam onSaveInstanceState
. W ten sposób jestem w stanie pobrać ostatni etap bitmapy podczas przesuwania w przód iw tył.
coś takiego:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable("Bitmap", bitmap);
}
Problem:
użytkownik naciśnie przycisk Wyślij email i powinny być w stanie zapisać wszystkie obrazy niezależnie od tego, która strona jest na IE on edytowany od strony 5 do 10 , a teraz on jest na stronie 10 i naciśnij przycisk wysyłania, że powinienem móc pobrać wszystkie edytowane obrazy.
Problem 2:
Jak już zaznaczono liczbę obrazów są o 5-20, Zapisywanie stanu w onSaveInstanceState
działa świetnie, ale stale się powiększa pamięć aplikacji w pamięci RAM, a awarie aplikacji na 10 obraz, w którym rozmiar aplikacji przechodzi na 150Mbs
.
Konieczne jest również zapisanie obrazu jako paczki w numerze onSaveInstanceState
, ponieważ pomaga on w szybszym ładowaniu obrazów, gdy użytkownik przesunie się z powrotem w inne miejsce.
Tak myślałem czy jest jakiś sposób możemy utworzyć własny Bundle klasę, gdzie możemy zapisać obraz na dysku po powiedzieć 5 stron przewijane i czyści pamięć i przeczytać go ponownie z dysku do pamięci, gdy użytkownik przewija się z powrotem? czy to brzmi rozsądnie?
Co próbowałem:
jako bitmapy są ładowane w oddzielnych fragmentów Próbowałam zapisać bitmapy w pamięci zewnętrznej w OnDestroy
, ale jak zapisywanie map bitowych do dysku nie jest łatwym zadaniem, trwa Czas jednak używam AsyncTask
, ale gdy użytkownik przesuwa się nieco między fragmentami, zapisywanie bitmap w OnDestroy
nie wydaje się być wygodnym sposobem.
Oto dlaczego zadaję to pytanie, więc może lepiej rozumiesz sytuację i możesz mi pomóc osiągnąć to w bardziej przekonujący sposób.
Co więc zamierzasz poradzić sobie z tą sytuacją?
Uwaga:
jeśli masz problemy ze zrozumieniem sytuacji i potrzebują więcej informacji zostawić komentarz i będę aktualizować pytanie.
Dzięki
Mam dla ciebie następujące pytania. 1. Czy przeskalujesz obrazy i wyświetlasz je do Viewpagera odpowiednio do szerokości/wysokości układu. jeśli nie, musisz to zrobić (co ograniczy zużycie pamięci bitmapowej). – HourGlass
2. Powiedzmy, że masz płótno nad każdym obrazem, użytkownik maluje coś nad nim, a zachowujesz zmiany w obrazie, gdy użytkownik przesunie do następnego. (Ta praktyka zwiększy rozmiar obrazu). – HourGlass