フロアプランの位置を表示するアプリを作りたい。ナビゲーションはWi-Fiを介して特定の方法で実装されているので、これを実行したので、フロアプランの表示に問題があります。
それはいくつかのベクトル形式であるかもしれません、しばらくインターネットをサーフィンした後、私はそれがsvgファイルでなければならないことを決めました。いくつかの解決策を見つけましたが、うまくいきません!
.svgファイルを表示する機会がありますが、「単純な」ファイルのみです。チュートリアルのファイルでのみ正常に機能し、他の.svg
ファイル(たとえば、Inkscapeで作成する他のファイル)では機能しません。
したがって、私は.svg
ファイルを解析し、そこからDOMを作成し、どういうわけかオブジェクトと属性を取得し、OpenGL ESを介してそれを描画することにしました。
一見、非常に良い解決策ですが、問題があります。 Androidにはいくつかの「ネイティブ」Apacheライブラリがあり、バティックで何かを実行しようとすると、バティックライブラリではなく「ネイティブ」ライブラリで検索するため、NoClassDefFoundError
がスローされます。 。
もちろん、プロジェクトにソースコードを追加し、.svg
ファイルのバティックパーサーだけを取得して何らかの方法で編集することもできますが、多くの作業があり、同じように独自のパーサーを作成できます。
試用版はありませんが、svgファイルとAndroidでどのように機能するか 説明を参照 を実行すると、そのようなファイルのラスタライズのみがあり、それだけです。
独自のパーサーを作成するよりも良い解決策はありますか?誰かがこの問題に遭遇しましたか?
#1を使用することをお勧めします。独自のパーサーを作成しないでください。それは大きな頭痛の種になるだろう。
フロアプランはどの程度詳細にする必要がありますか? Android-svgはSVGをかなりよくサポートしています。フィルターや光源をサポートしていません。あなたのSVGにはそれらが含まれません(私は願っています)。
そうしたくない場合は、四分木を調べてください。巨大な画像をレンダリングし、それを4分の1のような形式に分解して、必要な4分割のみをロードできます。
Androidウェブサイトは http://www.vectoroid.com のSVGライブラリを作成しました==
欠けている主なものはSVGアークのサポートで、これは現在修正されており、近い将来のリリースに含まれる予定です。
約1年間取り組んでいるので、フィードバックを探しています。だから何かあれば教えてください...
私はさらに別の SVG for Android ;を使用しています。比較的新しいようです。
GPLv3、CSS2サポート、フォント、テキストとスパン、線形グラデーションと放射状グラデーション、SVGおよびSVGZ、初期フィルタリングサポート、アセットからの画像、Webおよびインラインのbase64エンコード画像。私が試したすべての中で最速。
もちろんフィルターのサポートはより良いかもしれませんが、これを除いてうまく機能し、20メガバイトのSVGファイルも表示します。