2

Android アプリで svg ファイルを表示する必要があります。svg-androidは、ドキュメントがある唯一のライブラリのように思われるため、私の最初のアプローチです。利用可能な唯一の例は、svg 画像を添付するイメージ ビューを作成し、それをメイン コンテンツ ビューに添付する方法を示しています。ただし、既に定義した RelativeLayout に svg ファイルを表示する必要があります。私は次のような実装を試みました:

ImageView imageView = new ImageView(this); 
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.logo); 
imageView.setImageDrawable(svg.createPictureDrawable());
RelativeLayout home_header = (RelativeLayout) findViewById(R.id.home_header);
home_header.addView(imageView);

すべてが正常に表示されます (警告/エラーはありません) が、アプリのログをテストすると、次のように報告されます。

05-27 11:25:43.940: I/Adreno200-EGLSUB(28492): <ConfigWindowMatch:2078>: Format RGBA_8888.
05-27 11:25:43.950: E/(28492): Can't open file for reading
05-27 11:25:43.960: E/(28492): Can't open file for reading

次のことを確認しました: - ファイルが他のプログラムで開かれていない - ファイルが適切にフォーマットされている

ここで何が欠けていますか?何が起こっているのかについての提案はありますか?

4

5 に答える 5

4

エミュレータをデバッグしてネイティブアプリと比較した後、「読み取り用にファイルを開くことができません」は、表示されていないsvgファイルとは関係がないことがわかりました。代わりに、ハードウェア アクセラレーションに関連していました。マニフェストで次を設定する必要がありました

android:hardwareAccelerated="false" 

問題が解決しました。時間の無駄。脳が吹き飛ばされました。

于 2013-05-31T02:04:30.370 に答える
-1

AppCompatImageView

パッケージから

android.support.v7.widget

この投稿を確認してください。svgを使用するためのすべての詳細を提供しました。私の経験によると、Android で svg を問題なく使用できます。

長所:

  1. サードパーティ ライブラリなし (公式の Android サポート ライブラリが必要)
  2. gradle ファイルに変更はありません
  3. svg には「app:srcCompat」、その他の画像には「android:src」ではなく、すべての「ImageViews」に「android:src」を使用します。
  4. AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); を使用する必要はありません。BaseActivity の静的ブロックで。
于 2016-12-08T10:17:46.027 に答える