25

フロア プランの位置を表示するアプリを作成したいと考えています。ナビゲーションは特定の方法で WiFi 経由で実装されています。私はそれを実行したので、フロア プランの表示に問題があります。

しばらくインターネットをサーフィンした後、svgファイルに違いないと判断したので、ベクター形式である可能性があります。いくつかの解決策を見つけましたが、うまくいきません!

  1. ライブラリ svg-android

    .svg ファイルを表示する機会がありますが、「単純な」ファイルのみです。チュートリアルのファイルに対してのみ正常に機能しますが、他の.svgファイル (たとえば、Inkscape で作成する他のファイル) に対しては正常に機能しません。

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

  2. アパッチ バティック

    一見、非常に良い解決策ですが、問題があります。Androidにはいくつかの「ネイティブ」Apacheライブラリがあり、バティックで何かをしようとするとNoClassDefFoundError、バティックライブラリではなく「ネイティブ」ライブラリで検索しているため、がスローされます。

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

  3. タイニーライン

    試用版はありませんが、svg ファイルと android でどのように機能するかの説明を見ると、そのようなファイルのラスタライズのみがあり、それだけであることがわかります。

独自のパーサーを作成するよりも優れた解決策はありますか? 誰かがこの問題に遭遇しましたか?

4

4 に答える 4

11

#1を使用することをお勧めします。独自のパーサーを作成しないでください。それはただの大きな頭痛の種になるでしょう。

間取り図はどの程度詳細に作成する必要がありますか? android-svg は SVG をかなりうまくサポートしています。フィルターや光源のサポートが不十分です。あなたのSVGにはそれらが含まれていません(願っています)。

それをしたくない場合は、四分木を調べてください。巨大な画像をレンダリングし、それをクアッドツリーのような形式に分解してから、必要なクワッドのみをロードできます。

于 2012-07-18T07:00:43.680 に答える
4

Android用のSVG libarayを作成しました。ウェブサイトは http://www.vectoroid.comです

欠けている主なものは SVG アークのサポートです。これは現在修正されており、近い将来にリリースされる予定です。

約1年間取り組んできたので、フィードバックを求めています。ですので、何かありましたら教えてください...

于 2012-09-26T17:10:31.240 に答える
1

Android 用にさらに別の SVG を使用しています。比較的新しいようです。

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

もちろん、フィルターのサポートの方が優れているかもしれませんが、それ以外はうまく機能し、20 メガバイトの SVG ファイルも表示できます。

于 2015-09-29T13:54:11.127 に答える