Phiên bản mới nhất của Thư viện hỗ trợ Android (23.2) thêm hỗ trợ cho các đối tượng vẽ vector. Nó dường như làm điều này bằng cách rasterizing các vectơ trên bay trên nền tảng mà không tự nhiên hỗ trợ drawables vector.Thư viện hỗ trợ Android 23,2 bản vẽ vector bị mờ
Tuy nhiên, hình ảnh quét lại có vẻ là kích thước cố định thay vì phụ thuộc vào cách sử dụng. Đây là một ví dụ.
Vector
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm0,3c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zm0,14.2c-2.5,0 -4.71,-1.28 -6,-3.22 0.03,-1.99 4,-3.08 6,-3.08 1.99,0 5.97,1.09 6,3.08 -1.29,1.94 -3.5,3.22 -6,3.22z"/>
</vector>
Layout
<ImageView
android:layout_width="128dp"
android:layout_height="128dp"
android:id="@+id/imageView"
app:srcCompat="@drawable/vector1"/>
Các vector là 24dp x 24dp. Nó được sử dụng trong một ImageView đó là 128dp x 128dp. Trên các nền tảng không hỗ trợ drawables vector, hình ảnh kết quả bị mờ vì vector được rasterized ở 16dp và thay đổi kích thước thành 128dp.
Giải pháp duy nhất tôi tìm thấy là tạo một vector riêng biệt có thể vẽ được cho từng kích thước dự định. Nó khá khó chịu để tạo ra một loạt các vectơ trùng lặp chỉ với chiều cao và chiều rộng thay đổi. Và điều đó không giải quyết được vấn đề nếu bạn muốn có thể vẽ được fill_parent hoặc được kích thước động theo một cách khác.
Phải xác định kích thước hình ảnh vectơ của bạn ở mức tiên tiến gần như hoàn toàn đánh bại lợi ích của việc sử dụng vectơ ngay từ đầu.
Có ai có công việc thực sự xung quanh không?
Cảm ơn, tôi đã bỏ qua việc thêm phần đã tạo và tôi đã không nhận ra rằng mọi thứ có thể rasterize hình ảnh. – Ben