如何包括图像到一个android项目最好的方式



我的android应用程序基本上是一个简单的,其中有一个列表视图与40个列表项。当点击这些项目时,每个项目都会引导到一个图像。一共有40张图片。

当然,我总是可以将这些图像放在res/drawable文件夹中并直接从我的java文件中引用它们在这种情况下,将会进行硬编码

img.setImageResource(R.drawable.day1);
.
.
.
img.setImageResource(R.drawable.day3);
.
.

。等。

是否有方法(例如通过在xml中存储图像名称)以编程方式从文件夹中检索图像名称并显示它们?

int resID = getResources().getIdentifier("day" + i,
    "id", getPackageName());

其中I是索引

img.setImageResource(resID);

使用资源创建动态位图对象

    ImageView image = (ImageView) findViewById(R.id.test_image);
    Bitmap bMap = BitmapFactory.decodeFile("/sdcard/"+"test"+index+".png");
    image.setImageBitmap(bMap);

使用相同的图像名称,如image1,image2…

我会怎么做:

我会像你说的那样把图像放在res/drawable文件夹中,但不会像你说的那样调用它们;工作太多了!尝试创建一个数组"Images",填充一个for循环,在每个位置添加如下内容:

for (i;i<x;i++)   //Where x is the number of images you use
     Images[i] = "R.drawable.day"+String.valueOf(i);
     // Even you could try with:
     // Images[i]="img.setImageResource(R.drawable.day"+String.valueOf(i)+")";
像这样,你只需要调用images[i]来调用image "i"

我希望这对你有帮助:)

一个简单的方法是这样做:你把你的图像放到res/drawable中,使用特定的模式命名(例如:img1, img2, img3…)然后动态加载它们,使用如下模式:

String imageName =IMAGE_PATTERN+id;
int imageResource = getResources().getIdentifier(imageName,null,getPackageName());
imageView.setImageDrawable(getResources().getDrawable(imageResource));

,IMAGE_PATTERN可能是"image"或"img"之类的东西,或者你用来命名文件的任何东西:)

祝你好运,Arkde

最新更新