Android动态图像

Android动态图像,android,imageview,dynamic-data,Android,Imageview,Dynamic Data,我有10个图像视图: ImageView Card0=(ImageView)findViewById(R.id.Card0); ..... ImageView Card9=(ImageView)findViewById(R.id.Card9); 所有图像都在我的drawable文件夹中,但我正在从远程数据库中选择卡片。 一个php脚本生成10张随机卡片 我拥有包含文件名的数组: Cards = deal.split(":"); 现在我要设置图像: Card0.setImageResource

我有10个图像视图:

ImageView Card0=(ImageView)findViewById(R.id.Card0);
.....
ImageView Card9=(ImageView)findViewById(R.id.Card9);
所有图像都在我的drawable文件夹中,但我正在从远程数据库中选择卡片。 一个php脚本生成10张随机卡片

我拥有包含文件名的数组:

Cards = deal.split(":");
现在我要设置图像:

Card0.setImageResource(R.drawable.Cards[0]);
我已经尝试并搜索了很多次,但无法设置任何变量
setImageResource(R.drawable.*variable*)


有人提供帮助。

无法使用R.id.drawable.*动态加载

解决方案1:

我假设你的卡片图片的名称是:card0.png,card1.png。。。card9.png 我建议您创建一个
assets
目录(在
res
目录中)。将卡图像复制到
资产
目录

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允许直接(原始)访问
资产
目录中的内部资源

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;
        }       
    }
}
解决方案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。。。?交易的内容是什么?