2017-11-06 25 views
5

Sau khi nâng cấp lên 3.0 Android Studio đã bắt đầu khiếu nại về các đường dẫn dài trong các bản vẽ vector.Các bản vẽ vector Android Studio 3.0 và các công cụ LINT: ignore = "VectorPath"

Cảnh báo nói:

con đường rất dài vector (7958 ký tự), mà có hại cho hiệu suất. Xem xét việc giảm độ chính xác, loại bỏ các chi tiết nhỏ hoặc rasterizing vectơ. ít hơn ... (⌘F1) Sử dụng đường dẫn vector dài là xấu cho hiệu suất. Có một số cách để làm cho pathData ngắn: * Sử dụng ít chính xác * Loại bỏ một số chi tiết nhỏ * Sử dụng Android Studio công cụ chuyển đổi vector * Rasterize hình ảnh (chuyển sang PNG)

Các tài liệu https://developer.android.com/guide/topics/graphics/vector-drawable-resources.html cho chúng ta thấy làm thế nào để sử dụng drawables vector trong các ứng dụng của chúng tôi, và khuyến cáo nó trên png của, vv

tôi có cả được sử dụng Công cụ vector Conversion Android Studio và dịch vụ tuyệt vời này để chuyển đổi của SVG để drawables vector: http://inloop.github.io/svg2android/

Có các dịch vụ nào khác làm giảm độ phức tạp của vector không? Tôi có thể tìm thấy các hướng dẫn về cách thức rút tiền véc tơ 'tiên tiến' của mình ở đâu?

+0

Tôi thực sự đã phát hành một công cụ tối ưu hóa có thể vẽ vector được gọi là ['avdo'] (https://github.com/alexjlockwood/avdo) khoảng một giờ trước. Bạn có thể thấy nó hữu ích! –

Trả lời

4

Có thêm một bước bạn có thể thêm trước khi sử dụng svg2android, mà đang chạy nó thông qua svgo

Một ví dụ đường ống mà tôi sử dụng trông giống như (lưu ý rằng thay vì các công cụ web, Tôi đang sử dụng svg2vectordrawable)

~$ svgo image.svg --config=config -o image.svg.optimized 
~$ s2v "image.svg.optimized image.xml 

tập tin config tôi trông như thế (bạn có thể chơi xung quanh với nó để phù hợp với nhu cầu của bạn):

"plugins": [ 
    { 
     "convertPathData": { 
      "leadingZero": false, 
      "floatPrecision": 2 
     } 
    } 
] 
+0

Đây là một mẹo tuyệt vời! Cảm ơn rất nhiều! –

+0

'leadingZero' phải có mặt, nếu không bạn sẽ nhận được' InvalidVectorPath' lint. – TWiStErRob

+0

'" leadingZero ": false' hủy kích hoạt tối ưu hóa số không đứng đầu, làm cho kết quả cuối cùng của bạn có chúng – marianosimone

2

Thử tối ưu hóa véc tơ có thể vẽ được bằng cách sử dụng avdo! Nó sẽ giúp giảm sự phức tạp của đường dẫn của bạn.

+0

Nó giảm kích thước xuống 10,5% nhưng tiếc là một số đường dẫn vẫn còn quá dài theo lint. Có cách nào để chia nhỏ đường dẫn hay gì đó không? Hay tôi nên dùng png? Một trong các đường dẫn là 1595 ký tự. –

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