如何动态获取R值

时间:2017-01-02 09:58:40

标签: android android-layout android-resources

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

例如,让我们说我必须动态生成ImageView并动态地将 drawable 放入其中。

我不知道我必须生成多少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);            
    }

我怎样才能构建&#34;这行代码:R.drawable.img + i

我如何实现目标?

2 个答案:

答案 0 :(得分:2)

首先确保您的图片为jpgpng

你可以试试这个

   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);
       }

答案 1 :(得分:1)

   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); 

将以上代码放入您的活动中。并设置它对我有用的图像资源。