R.id.drawable. *을 사용하여 동적으로로드 할 수 없습니다.
해결 방법 1 :
나는 당신의 카드 이미지의 이름을 가정합니다은 다음과 같습니다 card0.png, card1.png ... 을 card9.png 난 당신이 res
디렉토리 내부 assets
디렉토리를 (만들 제안). 카드 이미지를 assets
디렉토리로 복사하십시오.
import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.drawable.Drawable;
import java.io.InputStream;
import java.io.IOException;
public class YourActivity extends Activity {
//...
public Drawable loadAssetImage(String fileName) {
AssetManager assetMgr = this.getAssets();
try {
InputStream is = assetMgr.open(fileName);
Drawable d = Drawable.createFromStream(is, null);
return d;
}catch(IOException e) {
// error...
return null;
}
}
}
loadAssetImage()
방법은 assets
디렉토리에서 이미지를로드합니다. 이제 문자열 매개 변수를 받아들이므로 이미지를 동적으로로드 할 수 있습니다.
디렉터리 이름은 assets
이어야합니다. Android는 assets
디렉토리의 내부 리소스에 직접 액세스 할 수 있습니다.
해결 방법 2
public Drawable loadCardImage(int index) {
switch(index) {
case 0:
return android.R.Card0;
case 1:
return android.R.Card1;
..
case 9:
return android.R.Card9;
}
return null;
}
당신은 서버에서 카드의 인덱스를받을 것입니다. 이 함수는 적절한 리소스를 반환합니다.
파일 이름은 무엇입니까? card0.png, card1.png ...? 'deal'의 내용은 무엇입니까? –