Câu hỏi Hỗ trợ SVG trên Android


Android có hỗ trợ SVG không? bất kỳ ví dụ nào?


76
2017-10-08 11:07


gốc


Đọc này: code.google.com/p/android/issues/detail?id=1376 (đọc đến hết) - ankitjaininfo
Câu trả lời được chấp nhận là không chính xác kể từ ngày 10/5/12 - Brian Webster


Các câu trả lời:


Câu trả lời hoàn chỉnh nhất là:

  • Trình duyệt mặc định của Android 2.x không hỗ trợ SVG.
  • Trình duyệt mặc định của Android 3+ DO hỗ trợ SVG.

Để 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:

  1. Cài đặt một trình duyệt có khả năng hơn (như Firefox hoặc Opera Mobile - cả hai đều hỗ trợ SVG)
  2. Sử dụng một polyfill JavaScript có thể phân tích cú pháp SVG và đưa nó vào một khung HTML5

Tùy chọn đầu tiên là không sao nếu bạn chỉ đang 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 có thể điều khiển được (có thể điều khiển). Nó 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 một cơ sở người dùng lớn, không được kiểm soát.

Trong trường hợp sau, bạn muốn sử dụng một polyfill. Hiện có rất nhiều thư viện JavaScript có thể chạy SVG và render thành canvas. Hai ví dụ là:

Sử dụng một polyfill, bạn có thể render SVG của bạn trong một canavs trên tất cả các phiên bản của Android 2.x.

Để có ví dụ hoàn chỉnh 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 polyfill canvg để tạo các biểu đồ KIS UI DataViz (dựa trên SVG) trên Android 2.x. Hy vọng rằng sẽ giúp!


55
2018-02-17 18:11



Xin chào, tôi muốn biết về ImageView, liệu tôi có thể thay đổi màu của thời gian chạy hình ảnh svg đó không? - iDroid Explorer


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 là tốt như bản vẽ thực tế được xử lý nguyên bản bởi một đối tượng android.graphics.Picture.


22
2018-05-11 22:56



Vì vậy, nó không phải là bỏ qua, tôi sẽ thêm một bình luận ở đây để điều đó (như đã đề cập trong câu trả lời của @ Todd) Android 3+ không hỗ trợ SVG. Vì vậy, không cần các nhà phát triển quan tâm đến các thư viện nếu họ không lo lắng về các thiết bị Android cũ hơn. - monotasker
Trong câu trả lời của tôi, tôi đang đề cập đến một thư viện cho phép nhà phát triển tải và hiển thị các tệp SVG trong ứng dụng của họ. Android 3+ thêm hỗ trợ trình duyệt cho SVG, nhưng không phải có hỗ trợ SVG trong API nhà phát triển của nó. - pents90
Ồ xin lỗi. Lỗi của tôi. - monotasker
Điều này đã không làm việc cho tôi không may với Android 4.3. Hình ảnh mẫu kết thúc bằng trống. Tôi đang sử dụng mã chính xác trong trang hướng dẫn trên Wiki. - BVB
@BVB, bạn sẽ cần phải tắt tăng tốc phần cứng để nó hoạt động trên Android 4.x. Xem: stackoverflow.com/questions/10384613/… và stackoverflow.com/questions/8771219/… - pents90


Hiện tại một số người kể cả tôi làm việc độc lập.
Bạn có thể tìm giải pháp làm việc trong các bài viết sau:
Android. ImageView với Hỗ trợ SVG.
Android ImageView và Drawable với hỗ trợ SVG


8
2017-12-14 10:45



Nó là như thế nào github.com/pents90/svg-android? - Robert


Có một thư viện mới (dưới sự phát triển tích cực) androidsvg cho phép một hình ảnh kết hợp trực tiếp vào các dự án. Nó có lợi thế là xác định SVGImageView cho phép một kết hợp một svg trực tiếp trong bố cục xml.

Cuối cùng, bao gồm svg trong android là đơn giản.

Biết thêm chi tiết: Stack Overflow post


8
2017-11-03 00:04



Thư viện svg này thực sự hoạt động. svg-android và dĩa của nó không áp dụng kiểu / css mà tôi đã định nghĩa trong một nhóm cho con của nhóm. Cái này có. Cảm ơn bạn. - domenukk


Android hỗ trợ các bản vẽ vector: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html

Và có tồn tại một SVG Android để chuyển đổi VectorDrawable: http://inloop.github.io/svg2android/


8
2017-07-27 15:30



và cổng lạc hậu trong thư viện hỗ trợ: developer.android.com/reference/android/support/graphics/… - Leos Literak


Tôi đã có một cái nhìn ngắn gọn tại https://code.google.com/p/androidsvg/. Cho đến nay hiển thị tất cả các tập tin svg tôi đã ném vào nó. Trông đầy hứa hẹn.


2
2017-07-11 06:46





Tôi đã chỉ cười lên một repo Github và ví dụ repo cho thư viện TPSVG của riêng tôi, mà tôi ban đầu được tạo ra đặc biệt cho một ứng dụng của tôi.

https://github.com/TrevorPage/TPSVG_Android_SVG_Library

https://github.com/TrevorPage/TPSVG_Example1


1
2018-05-28 22:33





Tôi biết giải pháp của tôi là hơi hardcore, 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 (í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ó, ví dụ như svg-android-2 (là một nhánh của svg-android được đề cập trong câu trả lời khác, chỉ với nhiều tính năng và sửa lỗi): https://code.google.com/p/svg-android-2/

2) Viết một ứng dụng đơn giản mà 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 lớp Picture hoặc lưu nó trong một biến String.

4) Sao chép-dán mã Java thu đượ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ụ làm việc về 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 đồ tàu điện ngầm Milan): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan

Lưu ý tốc độ tải bản đồ và vẻ đẹp của bản đồ, ngay cả khi được phóng đại.


1
2018-06-27 18:20





Firefox cho Android hỗ trợ SVG.


0
2018-05-03 06:12





Opera Mobile cho Android hỗ trợ svg và Opera Mini hỗ trợ nội dung tĩnh svg.


0
2018-05-03 08:54