2 slaks SLaks 于 2013.10.09 15:26 提问

android中如何在一个循环语句中使用setImageresource设置很多图片?

程序的drawable文件夹中有5个 imageViews和5个images。 ImageViews的名称是imageView1...imageView5 ,images的名称是image1...image5。

如何执行下面的方法:

  imageView1.setImageResource(R.drawable.image1)
  imageView2.setImageResource(R.drawable.image2)
  imageView3.setImageResource(R.drawable.image3)
  imageView4.setImageResource(R.drawable.image4)
  imageView5.setImageresource(R.drawable.image5)

现在不是 5个 imageViews,有很多的imageViews,我想在一个循环语句中执行,现在的问题是R.drawable.imageX是一个整型而不是一个字符串。

2个回答

pingchuanyang
pingchuanyang   2013.10.10 10:13
已采纳

可以使用Java里的反射技术来实现:

int imgID = 0;
int imgViewID = 0;
for(int i = 1; i <=5; i++)
{
try
{
imgID = R.drawable.class.getField( "image" + i ).getInt(new R.drawable());
imgViewID = R.id.class.getField( "imageView" + i ).getInt(new R.id());

((ImageView)findViewById(imgViewID)).setImageResource(imgID);
}
catch (Exception e)
{
e.printStackTrace();
}
}

yang163_yang
yang163_yang   2013.10.09 16:49

放到assets目录,
imageView.setImageDrawable(Drawable.createFromStream(getActivity().getAssets().open("dir/image1"), ""));
dir是assets下的子目录名

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!