web-dev-qa-db-ja.com

AndroidでのSVGサポート

AndroidはSVGをサポートしていますか?

78
Kakey

最も完全な答えはこれです:

  • Android 2.xデフォルトブラウザは、SVGをネイティブにサポートしていません。
  • Android 3+デフォルトブラウザはSVGをサポートします。

プラットフォームの2.xバージョンにSVGサポートを追加するには、2つの基本的な選択肢があります。

  1. より高性能なブラウザをインストールします(FirefoxまたはOpera Mobile-両方ともSVGをサポート)
  2. SVGを解析してHTML5キャンバスにレンダリングできるJavaScriptポリフィルを使用する

最初のオプションは、SVGを個人的な使用または限られた(制御可能な)ユーザー向けに機能させようとしている場合は問題ありません。制御されていない大規模なユーザーベースをターゲットにしながらSVGを使用する場合、これは素晴らしいオプションではありません。

後者の場合、ポリフィルを使用します。 SVGを評価してキャンバスにレンダリングできるJavaScriptライブラリが今日利用可能です。 2つの例は次のとおりです。

ポリフィルを使用すると、Android 2.x.のすべてのバージョンでcanavsでSVGをレンダリングできます。

このアプローチのより完全な例については、 canvg polyfillの使用について説明しているこのブログ投稿 を参照して、Kendo UI DataVizチャート(SVGベース)をAndroid 2.x.役に立てば幸いです!

56
Todd

SVG Basic 1.1ファイルの読み込みと描画をサポートする新しいオープンソースライブラリがあります: https://github.com/pents90/svg-Android 。実際の描画はAndroid.graphics.Pictureオブジェクトによってネイティブに処理されるため、パフォーマンスは良好です。

22
pents90

新しいライブラリがあります(活発な開発中) androidsvg これにより、svg画像をプロジェクトに直接組み込むことができます。 SVGImageViewを定義する利点があり、sxmlをレイアウトxmlに直接組み込むことができます。

最後に、svgをAndroidに含めるのは簡単です。

詳細: Stack Overflow post

8
Abid H. Mujtaba

現在、私を含む何人かの人々が独立して取り組んでいます。
次の記事で実用的なソリューションを見つけることができます。
Android.SVGサポート付きImageView
SVGサポート付きAndroid ImageViewおよびDrawable

8
Pavel Chernov

Androidはベクタードロウアブルをサポートしています: https://developer.Android.com/reference/Android/graphics/drawable/VectorDrawable.html

そして、Android SVG to VectorDrawable Converter: http://inloop.github.io/svg2Android/ が存在します。

8
David Peer

https://code.google.com/p/androidsvg/ を簡単に見てきました。これまでに、私が投げたすべてのsvgファイルを表示しました。有望に見えます。

2
Alex

私のソリューションはややハードコアですが、優れた機能を発揮し、外部ライブラリを必要とせず(少なくとも最終コードには含まれません)、非常に高速です。

1)たとえば、svg-Android-2(別の回答で言及されたsvg-Androidのフォークであり、より多くの機能とバグ修正がある)などの既存のSVGロードライブラリを使用するだけです: https:// code .google.com/p/svg-Android-2 /

2)SVG画像を読み込んで表示する以外は何もしないシンプルなアプリを作成します。

3)Pictureクラスを作成するか、またはString変数に保存するJavaコードを出力するように、SVGロードライブラリを変更します。

4)この方法で取得したJavaコードを作成中のアプリにコピーアンドペーストします。

この手法の詳細とサンプルソースコードのダウンロードについては、ブログにアクセスしてください。 http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-Android.html

この手法の実例は、Google Playから入手できます: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample

この手法を使用して作成された商用アプリの例は次のとおりです(ミラノのメトロマップ): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan

マップがどれだけ速く読み込まれ、拡大されたときでも見栄えがすることに注目してください。

1
Bartek

サポートベクタードロアブル をチェックしてください。 Android studioには、SVGファイルを.XMLファイルに変換するツールがあります。

imageView(またはImageButtonやFloatingActionButtonなどのサブクラス)でAppCompatを使用する場合、新しいapp:srcCompat属性を使用してベクタードロアブル(およびAndroid:srcで利用可能な他のドロアブル)を参照できます。

Android Support Library 23.3.0の時点で、サポートベクタードロウアブルはapp:srcCompatまたはsetImageResource()を介してのみロードできます。

1
Surya

私は自分のTPSVGライブラリ用にGithubリポジトリとサンプルリポジトリを用意しました。これはもともと、私のアプリケーション用に特別に作成したものです。

https://github.com/TrevorPage/TPSVG_Android_SVG_Library

https://github.com/TrevorPage/TPSVG_Example1

1
Trevor

Firefox for AndroidはSVGをサポートします。

0
Zuuum

Opera Mobile for Androidはsvgをサポートし、 Opera Mini は静的svgコンテンツをサポートします。

0
Erik Dahlström