2012-07-18 22 views
21

一部のフロアプランの位置を表示するアプリを作成したいとします。ナビゲーションはWiFiを介して特定の方法で実装されています。私はそれをやったので、今私はフロアプランを表示するという問題があります。AndroidでSVGファイルを表示する

私はそれがsvgファイルでなければならないと決めましたしばらくインターネットをサーフィンした後、それはいくつかのベクトル形式であるかもしれません。 私はいくつかの解決策を見つけましたが、それは私のために働いていません!

  1. Library svg-android

    ファイルが、唯一の "単純な" ファイルを.SVG表示する機会があります。チュートリアルのファイルだけでうまく動作しますが、他の.svgファイル(例えば、Inkscapeで作成する他のファイル)ではうまく動作しません。

    したがって、私は.svgファイルを解析し、そこからDOMを作成し、何らかの形でオブジェクトと属性を取得し、OpenGL ES経由で描画することに決めました。

    一見、非常に良い解決策で
  2. Apache Batik

    が、問題があります。 Androidにはいくつかの「ネイティブ」Apacheライブラリがあり、バティックで何かをしようとするとNoClassDefFoundErrorがスローされます。これはバティックライブラリではなく「ネイティブ」ライブラリであるためです。

    もちろん、私たちのプロジェクトにソースコードを追加して、.svgファイルのバティックパーサーのみを取り出して何らかの方法で編集することもできますが、多くの作業があり、同じ成功を収めて独自のパーサを書くことができます。

  3. Tiny Line

    そこには試用版ではありませんが、我々はそれがSVGファイルとアンドロイドのためにどのように動作するかのsee descriptionをよ場合、我々はそこにこのようなファイルの唯一のラスタライズであり、それがすべてだということがわかります。

独自のパーサーを作成するよりも優れたソリューションはありますか? 誰もこの問題に遭遇しましたか?

+0

別のオプション - http://stackoverflow.com/a/30213340/3325759 –

答えて

8

#1を使用することをお勧めします。あなた自身のパーサーを書かないでください。それはちょうど大きな頭痛になるだろう。

フロアプランはどの程度詳細にする必要がありますか? android-svgはSVGをかなりうまくサポートします。フィルターや光源のサポートはあまりありません。あなたのSVGはそれらのものを持っていません(私が望む)。

そうしたくない場合は、クワッドツリーを見てください。あなたは巨大な画像をレンダリングし、フォーマットのようなquadtreeに分解し、必要なクワッドだけをロードすることができます。私はアンドロイドのウェブサイトのためのSVG libarayを執筆している

+0

ありがとうございました! –

+0

"androidsvg"(https://code.google.com/p/androidsvg/)または "svg-android"のいずれかで、 "android-svg"が存在しないと思います。 – Christian

+0

"androidsvg"は "svg-android"よりも完全なライブラリとしてお勧めします。 (Googleのコード)(https://code.google.com/p/androidsvg/)(投稿時点で数ヶ月でオフラインになります)と[Bitbucket](https://bitbucket.org/paullebeau/androidsvg/ダウンロード)リンク。 ライセンスはソースファイルにリストされており、Apache 2.0のようです。 – William

4

が不足している主なものは、これが現在固定されており、近い将来のリリースになりますSVGアークサポートされ http://www.vectoroid.com

です。

私は約1年間それに取り組んでいるので、私はそれについてのフィードバックを探しています。だから、もしあなたが教えてください...

+0

このライブラリを作成していただきありがとうございます。私はあなたのライブラリを私のアプリケーションで使用したいと思いますが、私の要件に合っているかどうかは分かりません。私は、ユーザーが描いたSVGパスを保存し、現在のユーザーの指がどこにあるかをチェックし、それに応じてコードを対話的に調べる必要があるちょっとした無料の描画アプリケーションを作成したいと考えています。あなたの図書館では可能ですか? –

1

もう1つ使用しました。SVG for Androidです。それは比較的新しいようです。

GPLv3、CSS2サポート、フォント、テキストおよびスパン、線形および放射状グラデーション、SVGおよびSVGZ、初期フィルタリングサポート、アセットからのイメージ、Webおよびインラインbase64エンコードイメージからのイメージ。私が試したことの中で最も速い。

もちろん、フィルタのサポートは優れているかもしれませんが、これ以外は20メガバイトのSVGファイルを表示することさえできます。

関連する問題