程序的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是一个整型而不是一个字符串。
可以使用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();
}
}
放到assets目录,
imageView.setImageDrawable(Drawable.createFromStream(getActivity().getAssets().open("dir/image1"), ""));
dir是assets下的子目录名