2011-03-07 3 views

Répondre

5

En supposant que vous avez une ressource drawable qui a un nom de fichier que vous savez, vous pouvez utiliser le nom de fichier, et obtenir l'identifiant comme ceci:

String mDrawableName = "stringFromXML"; 
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName()); 

(via How do I get the resource id of an image if I know its name?)

(je vois que je avoir une compréhension complètement différente de votre question, puis l'autre réponse: pour être clair: je suppose que vous avez un XML que vous avez fait, représentant un niveau dans un jeu. Donc le XML est votre truc personnel, pas un androïde layout-xml , et 'niveau' est aussi spécifique à votre application)

+0

c'est exactement ce dont j'ai besoin! Merci beaucoup! –

+0

pas de problème, si vous avez utilisé cette réponse s'il vous plaît appuyez sur le chèque vert sur la gauche;) – Nanne

0

Pourquoi faites-vous ça comme ça, exactement? Si vous utilisez LevelListDrawable, le drawable sera automatiquement modifié lorsque le niveau sera modifié. Cela dit, si vous avez vraiment besoin pour obtenir le Drawable de celui-ci, vous pouvez essayer quelque chose comme ça (par exemple, vous avez besoin du drawable pour le niveau 3):

ImageView iv = (ImageView)findViewById(R.id.imageview); 
LevelListDrawable lld = (LevelListDrawable)iv.getDrawable(); 
int temp = lld.getLevel(); 
lld.setLevel(3); 
Drawable d = lld.getCurrent(); 
lld.setLevel(temp); 

Il y a probablement un moyen plus facile d'accomplir ce que vous essayez à faire cependant, si vous pouvez élaborer.

+0

C'est parce que j'ai un dérivé de GLSurfaceView avec des sprites personnalisés. et je charge la texture avec une propre classe écrite TExtureProvider basée sur des identifiants drawable. –

Questions connexes