如何以最佳方式将图像包含到android项目中?

时间:2011-10-24 08:36:47

标签: android android-layout

我的Android应用程序基本上是一个简单的应用程序,其中有一个包含40个列表项的列表视图。点击后每个项目都会导致一个图像。所以有40张图片。

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

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

。 等

无论如何(通过将图像的名称存储在xml中)以编程方式从文件夹中检索图像名称并显示它们?

4 个答案:

答案 0 :(得分:1)

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

其中i是你的索引

img.setImageResource(resID);

答案 1 :(得分:0)

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

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

使用相同的图像名称,如image1,image2 ...... 使用for循环或索引调用..

答案 2 :(得分:0)

我会做什么:

我会像你说的那样将图像放在res / drawable文件夹中,但不会像你说的那样打电话给他们;太多的工作!尝试创建一个数组“图像”,填充一个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]来调用图像“i”

我希望这可以帮助你:)

答案 3 :(得分:0)

这样做的简单方法是这样的: 您将图像放在res / drawable中,使用某种模式命名所有图像(例如:img1,img2,img3 ...),然后使用这样的名称模式动态加载它们:

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

,其中     IMAGE_PATTERN可能类似于“图片”或“img”或您用来命名文件的任何内容:)

祝你好运, Arkde