2012-04-29 15 views
1

LayerList描画可能タグの中にaのandroid:srcを動的に設定しようとしています。

はそうするために、私は、タグへのアクセスを取得する必要がありますが、それはで失敗し続け:ここ

android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x12/d=0x0 a=3 r=0x7f090142} 

はレイヤリスト描画可能な部分である:

<item android:id="@+id/my_item_id" 
    android:left="35dip" 
    android:right="0dip" 
    android:top="0dip" 
    android:bottom="50dip"> 
    <bitmap android:id="@+id/my_bitmap_id" android:gravity="left"/> 
</item> 

そして、ここのコードです:

Resources r = view.getResources(); 
Drawable drawable = r.getDrawable(myDrawableId); 
// it abends on this next line 
LayerDrawable ld = (LayerDrawable) r.getDrawable(R.id.my_item_id); 
// this is where I want to set the id of the drawable to use in the bitmap 
ld.setDrawableByLayerId(myDrawableId, drawable); 

ご協力いただきますようお願い申し上げます。

+0

また、私はプロジェクトをきれいにしました。変更はありませんでした。 – charlest

答えて

2

getDrawableを呼び出すと、ドロウアブルフォルダ内のドロアブルの1つを参照する必要があります。私はmy_item_idが何であるかは分かりませんが、描画可能な場合は試してみてください

LayerDrawable ld = (LayerDrawable) r.getDrawable(R.drawable.my_item_id); 
+0

my_item_idはタグのアンドロイド:id属性です(上記のxmlスニペットを参照してください)。これはDrawableと見なされます。 タグで使用するドロアブルを動的に設定することを私の完全な目標としています。この場合、id値は 'myDrawableId'に格納されます。だから、私はDrawableをmyDrawableidのために定義していますが、それはタグの 'android:src'としてハードコードできるように設定しようとすると問題が発生します。 – charlest

+0

私が理解できるものからレイヤリストを作成しようとしている場合は、ドロウアブルフォルダの1つにする必要があります。より明確にするために、次のリンクを見直してください。また、私が知ることができないビットマップのsrcがありません。 http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList – MikeIsrael

+0

LayerListはドロウアブルフォルダにあります。私が実行している問題は、値を設定しようとしていることですプログラマチックに srcの場合getDrawableを実行するときに、レイヤリストドロワブルを指定する必要があり、タグIDを指定する必要はないと思います。私はそれと一緒に作業し、私が見つける追加情報を投稿します。ご協力いただきありがとうございます! – charlest

関連する問題