Nhờ Schermvlieger cho hỏi this câu hỏi về anddev.org,sử dụng tối ưu của BitmapFactory.Options.inSampleSize cho tốc độ
Tôi chỉ cần sao chép câu hỏi của mình để SO như không ai trả lời bên kia trang web và tôi cũng phải đối mặt với cùng một vấn đề.
Tôi đã tự hỏi điều gì sẽ là việc sử dụng tối ưu BitmapFactory.Options.inSampleSize
liên quan đến tốc độ hiển thị hình ảnh.
Các tài liệu đề cập đến sử dụng các giá trị mà là một sức mạnh của 2, vì vậy tôi đang làm việc với 2, 4, 8, 16, vv
Những điều tôi đang tự hỏi về là:
- Tôi có nên Resample xuống đến kích thước nhỏ nhất vẫn lớn hơn độ phân giải màn hình, hoặc tôi có nên lấy mẫu xuống kích thước vừa đủ để tránh
OutOfMemoryError
không? - Làm cách nào để tính toán kích thước tối đa của hình ảnh vẫn có thể được hiển thị mà không cần hết bộ nhớ? Độ sâu màu của hình ảnh có đóng vai trò tốt và độ sâu của màn hình không?
- Có hiệu quả khi hiển thị hình ảnh qua hai cơ chế (
BitmapFactory
đối với các tệp lớn,setImageURI()
đối với các tệp nhỏ hơn). Tôi đang sử dụngImageSwitcher
bằng cách này. - Có thể giúp tạo các số
Bitmap
,BitmapFactory.Options
vàinTempStorage
khi bắt đầu ứng dụng hoặc chỉ tạo chúng khi đang cần thiết không?
Khi bạn nói rằng "tỷ lệ hình ảnh ở thời gian vẽ cực kỳ đắt", điều này bao gồm các tùy chọn.inSampleSize cũng có? – kape123
inSampleSize được sử dụng để chia tỷ lệ hình ảnh tại thời điểm tải, không phải lúc vẽ. Nó là một cách rất tốt để prescale hình ảnh. –
Chúng tôi đang sử dụng ARGB_8888, sản xuất một hình ảnh rất mờ trên Samsung Galaxy Note 2, nhưng nó hoạt động tốt trên thiết bị khác, mang nó lên ARGB_4444 đang gặp lỗi ứng dụng trên Samsung Galaxy Note 2 và Pad 3110, do outOfMemoryError. Bạn có thể giúp chúng tôi phân loại điều này không. –