Android 如何动态获取R值

Android 如何动态获取R值,android,android-layout,android-resources,Android,Android Layout,Android Resources,我必须从R文件中动态获取一些资源 例如,假设我必须动态生成ImageView,并动态获取一个可绘制的,将其放入其中 我不知道我要生成多少个ImageView;可能有10个,50个或100个,所以我必须动态地做每件事 我的主要问题是从R文件中动态获取drawable 假设我有一个可绘制的: R.drawable.img1 R.drawable.img2 R.drawable.img3 R.drawable.img4 我应该这样做: for(int i = 0; i < 10; i++

我必须从R文件中动态获取一些资源

例如,假设我必须动态生成
ImageView
,并动态获取一个可绘制的,将其放入其中

我不知道我要生成多少个
ImageView
;可能有10个,50个或100个,所以我必须动态地做每件事

我的主要问题是从R文件中动态获取drawable

假设我有一个可绘制的: R.drawable.img1 R.drawable.img2 R.drawable.img3 R.drawable.img4

我应该这样做:

    for(int i = 0; i < 10; i++){
        ImageView iv = new ImageView(this);
        iv.setImageResource(R.drawable.img + i);            
    }
for(int i=0;i<10;i++){
ImageView iv=新的ImageView(本);
iv.setImageResource(R.drawable.img+i);
}
我如何“构建”这行代码:
R.drawable.img+I


如何实现我的目标?

首先确保您的图像是
jpg
png

你可以试试这个

   for(int i = 0; i < 10; i++)
     {
      ImageView iv = new ImageView(this);
      int imageResource = context.getResources().getIdentifier("@drawable/img "+i.replace(".jpg", ""), null,context.getPackageName());
      iv.setImageResource(imageResource);
       }
for(int i=0;i<10;i++)
{
ImageView iv=新的ImageView(本);
int-imageResource=context.getResources().getIdentifier(@drawable/img“+i.replace(.jpg)”),null,context.getPackageName();
iv.设置图像资源(图像资源);
}

将上述代码放入您的活动中。并设置图像资源它为我工作。

iv.setImageResource(int)思考如何使用intI我认为您可以使用imageview运行时设置标记?您尝试过了吗?为什么要调用
处理程序
?在上面我放置注释的代码中,您放置动态imageview并设置其图像。
   final int []imageArray=
           {R.drawable.img1,R.drawable.img2,R.drawable.img3};


           final Handler handler = new Handler();
            Runnable runnable = new Runnable() {
            int i=0;
            public void run() {
            //randomimg.setImageResource(imageArray[i]);

            //hEAR CREATE dynamic image view and set image resource 
               i++;
                if(i>imageArray.length-1)
                {
                i=0;    
                }
                handler.postDelayed(this, 5000);  //for interval...
             }

           };
          handler.postDelayed(runnable, 5000);