2017-05-01 15 views
0

いくつかのxmlレイアウト(単純な図形)を含むアセットフォルダ内にサブフォルダがあります。私の目標は、背景として使用するDrawableオブジェクトを作成できることです。ビュー。現在のところ、単純な形ですが、最終的には多くの形があります。アセットフォルダ内のxmlファイルから図面を作成

イメージドロワブルで動作する通常のコードは、xmlでヌルを返します(サブフォルダなし、リソースパスをハードコードする必要がないなど)。ファイル。誰にどのようにこれを行うにはどのようなポインターがありますか?以下のコード例。

XMLファイル:javaのに非常によく似たファイルを読み込むための

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> 
    <stroke android:width="2dp" android:color="#c9c6af" /> 
    <solid android:color="#ffffffff" /> 
</shape> 

C#のコード、。はい私はInputStreamを閉じる必要があります知っている:それはあなたがパフォーマンス上の理由のためにこれを行うことはできませんが判明し

public static Drawable GetDrawableFromAsset(Context context, string filePath) 
    { 
     AssetManager assetManager = context.Assets; 

     Stream istr; 
     Drawable drawable = null; 
     try 
     { 
      istr = assetManager.Open(filePath); 
      drawable = Drawable.CreateFromStream(istr, null); 
     } 
     catch (IOException e) 
     { 
      // handle exception 
     } 

     return drawable; 
    } 

答えて

0

:パフォーマンス上の理由から

https://developer.android.com/reference/android/view/LayoutInflater.html

を、ビューのインフレ率は、に大きく依存しています ビルド時に行われるXMLファイルの前処理。したがって、 は、実行時にプレーンXMLファイルに対してXmlPullParser でLayoutInflaterを使用することは現在できません。それだけでこれは私がとにかくしようとしてしまうために持っていたものであるXmlPullParserを使用することに関する

(。R.somethingファイル)コンパイルされたリソースから返さXmlPullParser で動作します(ストリームから作成動作しません。同じ理由で)

関連する問題