Android có hỗ trợ SVG không? bất kỳ ví dụ?
Android có hỗ trợ SVG không? bất kỳ ví dụ?
Câu trả lời:
Câu trả lời đầy đủ nhất là:
Để thêm hỗ trợ SVG vào phiên bản 2.x của nền tảng, bạn có hai lựa chọn cơ bản:
Tùy chọn đầu tiên là ổn nếu bạn chỉ cố gắng làm cho SVG hoạt động cho mục đích sử dụng cá nhân hoặc một nhóm người dùng hạn chế (có thể kiểm soát). Đó không phải là một lựa chọn tuyệt vời nếu bạn muốn sử dụng SVG trong khi nhắm mục tiêu cơ sở người dùng lớn, không bị kiểm soát.
Trong trường hợp sau, bạn muốn sử dụng polyfill. Ngày nay, có nhiều thư viện JavaScript có thể xử lý SVG và hiển thị trên canvas. Hai ví dụ là:
Sử dụng polyfill, bạn có thể hiển thị SVG của mình trong một canav trên tất cả các phiên bản Android 2.x.
Để có ví dụ đầy đủ hơn về phương pháp này, bạn có thể tham khảo bài đăng trên blog này thảo luận về việc sử dụng canvg polyfill để làm cho biểu đồ Kendo UI DataViz (dựa trên SVG) hoạt động trên Android 2.x. Hy vọng rằng sẽ giúp!
Có một thư viện mã nguồn mở mới hỗ trợ tải và vẽ các tệp SVG Basic 1.1: https://github.com/pents90/svg-android . Hiệu suất tốt vì bản vẽ thực tế được xử lý nguyên bản bởi một đối tượng android.graphics.Picture.
Hiện tại một số người trong đó có tôi làm việc độc lập.
Bạn có thể tìm thấy giải pháp làm việc trong các bài viết này:
Android. ImageView với hỗ trợ SVG.
Android ImageView và Drawable với hỗ trợ SVG
Có một thư viện mới (đang phát triển tích cực) androidsvg cho phép người ta kết hợp các hình ảnh svg trực tiếp vào các dự án. Nó có lợi thế là xác định một SVGImageView
cho phép người ta kết hợp một svg trực tiếp trong xml bố cục.
Cuối cùng, bao gồm svg trong android là đơn giản.
Thêm chi tiết: Bài đăng Stack Overflow
Android hỗ trợ các bảng vẽ vector: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html
Và có một Trình chuyển đổi Android SVG sang VectorDrawable: http://inloop.github.io/svg2android/
Tôi đã có một cái nhìn sơ lược về https://code.google.com/p/androidsvg/ . Cho đến nay đã hiển thị tất cả các tệp svg mà tôi đã ném vào nó. Trông đầy hứa hẹn.
Tôi vừa tạo một repo Github và repo ví dụ cho thư viện TPSVG của riêng tôi, mà ban đầu tôi đã tạo riêng cho một ứng dụng của tôi.
Tôi biết giải pháp của mình hơi khó, nhưng nó hoạt động tuyệt vời, không yêu cầu bất kỳ thư viện bên ngoài nào (ít nhất là không có trong mã cuối cùng của bạn) và cực kỳ nhanh.
1) Chỉ cần lấy một thư viện tải SVG hiện có, chẳng hạn như svg-android-2 (là một nhánh của svg-android được đề cập trong một câu trả lời khác, chỉ với nhiều tính năng hơn và các bản sửa lỗi): https://code.google.com / p / svg-android-2 /
2) Viết một ứng dụng đơn giản sẽ không làm gì khác ngoài việc tải và hiển thị hình ảnh SVG của bạn.
3) Sửa đổi thư viện tải SVG để nó in mã Java tạo ra lớp Ảnh hoặc lưu nó trong một biến Chuỗi.
4) Sao chép-dán mã Java có được theo cách này vào ứng dụng bạn đang viết.
Để biết thêm thông tin về kỹ thuật này và tải xuống mã nguồn mẫu, hãy truy cập blog của tôi: http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-android.html
Bạn có thể lấy ví dụ hoạt động của kỹ thuật này từ Google Play tại đây: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample
Dưới đây là ví dụ về ứng dụng thương mại được tạo bằng kỹ thuật này (bản đồ thành phố Milan): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan
Chú ý xem bản đồ tải nhanh như thế nào và nó trông đẹp như thế nào, ngay cả khi được phóng to.
Kiểm tra Hỗ trợ vector vẽ được . Android studio có một công cụ để chuyển đổi tệp SVG sang tệp .XML.
khi sử dụng AppCompat với ImageView (hoặc các lớp con như ImageButton và FloatingActionButton), bạn sẽ có thể sử dụng ứng dụng mới thuộc tính: srcCompat để tham chiếu các vector có thể vẽ được (cũng như bất kỳ loại có thể vẽ nào khác có sẵn cho android: src):
Kể từ Thư viện hỗ trợ Android 23.3.0, chỉ có thể tải các tệp có thể kéo vectơ hỗ trợ qua ứng dụng: srcCompat hoặc setImageResource ()
Opera Mobile cho Android hỗ trợ svg và Opera Mini hỗ trợ nội dung svg tĩnh.