2010-06-23 36 views
16

Tôi đang đọc khoảng setDrawingCacheEnabledgetDrawingCache và tôi đã tự hỏi khi nào thì tốt khi sử dụng hoặc khi không tốt.Android - bộ nhớ cache vẽ - khi nào nó hữu ích?

Về cơ bản trong trường hợp của tôi, tôi có HorizontalScrollView với nhiều thứ bên trong để cuộn của nó sang trái/phải và hầu hết mọi thứ không hiển thị.

Nếu tôi sử dụng setDrawingCacheEnabled(true) trên các chế độ xem, điều đó có giúp ích không? hoặc đây chỉ là khi tôi sử dụng chế độ xem tùy chỉnh và tôi gọi getDrawingCache()?

Có cách nào khác để sử dụng bộ nhớ cache trong một số HorizontalScrollView không?

Trả lời

5

TouchInterceptor.java - Đây là lớp chịu trách nhiệm sắp xếp lại danh sách phát của bạn trong trình phát nhạc mặc định. Nó sử dụng setDrawingCacheEnabled khi bạn bắt đầu kéo chế độ xem hiện tại. Về cơ bản, nó tạo ra một bitmap từ mục ListView và kéo nó. Hãy xem xét kỹ hơn phương pháp onInterceptTouchEvent.

+1

Liên kết đã chết. Thật không may, tôi không thể tìm thấy bất kỳ ví dụ tốt về việc sử dụng nó với phương thức onInterceptTouchEvent. – tomrozb

+1

Liên kết đã chết – Gallal

+1

https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/TouchInterceptor.java –

4

Nó chắc chắn hữu ích cho ảnh chụp màn hình như Marcel nói. Nó cũng rất hữu ích hiệu suất-khôn ngoan, vì đó là những gì nó đã được tạo ra cho. Nó sử dụng nhiều bộ nhớ hơn, khi bạn hiển thị khung nhìn thành bitmap trước.

Việc bạn làm là, bạn setDrawingCacheEnabled đến true, gọi getDrawingCache trả về bitmap và lưu bitmap này. Trong onDraw, bạn vẽ bitmap bạn có nếu bộ nhớ cache được bật hoặc chế độ xem khác. Điều này có thể rất đẹp khi cuộn.

+0

Tôi đang cố kéo và thả hình ảnh từ ô này sang ô khác. Tôi có thể sử dụng cơ chế này không? Nếu có thì tôi nên thay đổi gì trên mã của mình? Làm ơn giúp tôi? –

Các vấn đề liên quan