2016-04-13 7 views
0

私は少しカードゲームを持っています。私は私の描画可能なフォルダでJavaのsetImageResource

private void drawCard() { 
    if (liste.size()!=0) { 
     Collections.shuffle(liste); 
     kort.setText("" + liste.get(0)); 
     int i = liste.size(); 
     cardsLeft.setText("" + (i - 1)); 
     cardImage.setImageResource(R.drawable.XXX); 
     liste.remove(0); 
    } 
    else kort.setText("No more cards in deck"); 
} 

:ArrayListの中で私は、52枚のカードを追加:

ArrayList<String> liste = new ArrayList<String>(); 

をし、これでそれを埋める:

for (int n=1; n<14; n++) { 
    liste.add("d" +n); //diamonds 
    liste.add("c" +n); //clubs 
    liste.add("s" +n); //spades 
    liste.add("h" +n); //hearts 
} 

私はこのコードを使用してカードを引くためにArrayListの名前と同じ名前のカードの写真が52枚あります。 プログラムが描画するときなど。 D2私も描画可能なフォルダから画像D2にImageViewのcardImageを設定する必要があります。

cardImage.setImageResource(R.drawable.d2); 

が描かれたカードに一致させるために、私はImageViewのをどのように変化するかに助けが必要

あなたは行うことができます

答えて

1

public static int getDrawableId(Context ctx, String name) { 
    return ctx.getResources().getIdentifier(name, "drawable", ctx.getPackageName()); 
} 

cardImage.setImageResource(getDrawableId(YourActivity.this, "d2")); 
+0

申し訳ありませんが、これはどのように機能しますか?ゲームがd2(Diamonds of 2)を描画する場合、TextViewは簡単なコードで更新され、画面にd2を表示します。イメージR.drawable.d2でImageViewを更新するにはどうすればよいですか? 1つのイメージにつき1つのコードを作成する必要がありますか?置き換えられるもの:cardImage.setImageResource(R.drawable.liste.get(0)); –

+0

Resources.getIdentifier(String name、String type)指定された型の名前を持つリソースの識別子を返します。 ので、getIdentifierは( "D2"、 "描画可能")R.drawable.d2 あるいは、getIdentifier( "card_layout"、 "レイアウト")を返しますR.layout.card_layoutを返します。 リソース識別子は整数であり、彼らが必要な場所あなたは、このようなgetDrawableId 'へあなたの例コール@AlexanderKulyakhtin setImageResource() –

+0

へと渡す()'コンテキストパラメータをミス。 – Floern

関連する問題