Tôi tự hỏi nếu có một cách để vẽ các khu vực đầy (giống như hình đa giác đã điền) bằng Canvas Android mà không cần sử dụng lớp Path
và gọi canvas.drawPath(...)
.Có cách nào để vẽ một vùng được tô đầy bằng Canvas mà không sử dụng Đường dẫn không?
Lý do tôi muốn làm điều này mà không cần Path
là vì tôi phải vẽ các bộ dữ liệu rất lớn và canvas.drawPath(...)
không phải là phần cứng được tăng tốc và do đó làm chậm.
Hiệu suất khi sử dụng canvas.drawLines(...)
tốt hơn nhiều vì tăng tốc phần cứng, tuy nhiên tôi chưa tìm thấy cách vẽ đa giác được điền bằng phương pháp này (ngay cả khi tất cả các dòng được kết nối).
Ngay cả gọi paint.setStyle(Style.FILL)
không điền vào đa giác khi sử dụng drawLines(...)
.
Có cách nào để vẽ hình đa giác không sử dụng phương pháp Path
không?
Hoặc có cách nào khác để cải thiện hiệu suất bằng cách sử dụng Canvas
không?
Tương tác 'view' của bạn (bạn có thay đổi đối với tập dữ liệu của mình khi đang cần phải hiển thị) không? Chỉ cần vẽ tập dữ liệu của bạn vào 'canvas' một lần là chậm? –
Chế độ xem của tôi tương tác và do đó liên tục được làm mới, tôi đã sử dụng cơ chế đệm, giúp cải thiện hiệu suất. Tuy nhiên, tôi vẫn chưa hài lòng. –
Câu hỏi cuối cùng của tôi để xây dựng câu trả lời. Khi thay đổi xảy ra với tập dữ liệu của bạn, bạn có đang vẽ toàn bộ tập dữ liệu một lần nữa hay chỉ những dữ liệu bị ảnh hưởng trong lĩnh vực thay đổi? Ý tôi là, bạn đã sử dụng 'view.invalidate (Rect dirty)' chưa? Đây chỉ là một mẹo để cải thiện hiệu suất. –