Mục tiêu:Bàn Vẽ/Painting/tiết kiệm nhiều bitmap
Tôi muốn vẽ/ghi/sơn trên bitmap từ pdf và lưu chúng lại với nhau để tôi có thể gửi e-mail.
chi tiết:
Tôi có nhiều Pdf
file chứa mỗi 5-20
trang, ngay bây giờ là giải nén bitmap từ pdfs
và tải chúng trong mảnh vỡ trong ViewPager
, nơi tôi có thể vuốt qua họ và viết/vẽ hoặc bất cứ điều gì Tôi muốn. Để lưu/khôi phục trạng thái hiện tại của bitmap, tôi đang sử dụng onSaveInstanceState
. Bằng cách này tôi có thể truy xuất giai đoạn cuối của bitmap trong khi vuốt qua lại.
Something như thế này:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable("Bitmap", bitmap);
}
Vấn đề:
ép tài khoản gửi nút email trong và tôi sẽ có thể lưu tất cả những hình ảnh bất kể là trang anh là trên tức là ông đã thay đổi nội dung trang 5 đến 10 và bây giờ anh ấy đang ở trang 10 và nhấn nút gửi Tôi sẽ có thể truy xuất tất cả các hình ảnh đã chỉnh sửa.
Vấn đề 2:
Như tôi đã nói số lượng hình ảnh khoảng 5-20, Tiết kiệm nhà nước trong onSaveInstanceState
hoạt động tuyệt vời nhưng nó vẫn không ngừng gia tăng bộ nhớ ứng dụng trong ram, và treo ứng dụng tại 10 hình ảnh có kích thước ứng dụng đến 150Mbs
.
Tuy nhiên, việc lưu hình ảnh dưới dạng gói trong onSaveInstanceState
cũng cần thiết vì nó giúp tải hình ảnh nhanh hơn khi người dùng vuốt ngược lại.
Vì vậy, tôi đã suy nghĩ là có cách nào chúng ta có thể tạo ra một bó tùy chỉnh lớp học, nơi chúng ta có thể ghi ảnh vào đĩa sau khi nói 5 trang cuộn và xóa bộ nhớ và đọc nó trở lại từ đĩa vào bộ nhớ khi sử dụng đang cuộn lại? âm thanh này có hợp lý không?
Những gì tôi đã cố gắng:
Như bitmap được nạp trong mảnh riêng biệt tôi đã cố gắng để lưu các bitmap để lưu trữ bên ngoài trong OnDestroy
, nhưng như tiết kiệm bitmap vào đĩa không phải là một nhiệm vụ nhỏ, phải mất thời gian mặc dù đang sử dụng AsyncTask
nhưng khi người dùng đang vuốt nhanh bit giữa các đoạn thì lưu bitmap trong OnDestroy
dường như không phải là cách thuận tiện.
Đây là lý do tại sao tôi hỏi câu hỏi để có thể bạn hiểu rõ hơn về tình hình và có thể giúp tôi đạt được điều này một cách thuận tiện hơn.
Vì vậy, bạn định làm cách nào để xử lý tình huống này?
Lưu ý:
nếu bạn gặp khó khăn khi tìm hiểu tình hình và cần thêm thông tin để lại cho tôi một lời nhận xét và tôi sẽ cập nhật các câu hỏi.
Cảm ơn
Tôi có các câu hỏi sau đây cho bạn. 1. là bạn thu nhỏ hình ảnh và hiển thị để xempager theo chiều rộng bố trí/chiều cao. nếu bạn không phải làm điều đó (điều này sẽ làm giảm mức tiêu thụ bộ nhớ bitmap). – HourGlass
2. Giả sử bạn có canvas trên mỗi hình ảnh, người dùng vẽ một thứ gì đó lên đó, r u lưu các thay đổi cho hình ảnh khi người dùng vuốt sang hình ảnh tiếp theo. (Thực hành này sẽ tăng kích thước hình ảnh). – HourGlass