【问题标题】:How to dynamically get R value [duplicate]如何动态获取R值[重复]
【发布时间】:2017-01-02 09:58:39
【问题描述】:

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

例如,假设我必须动态生成 ImageView 并动态获取 drawable 以放入其中。

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

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

假设我有这个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);            
    }

如何“构建”这行代码:R.drawable.img + i

我怎样才能达到我的目标?

【问题讨论】:

标签: android android-layout android-resources


【解决方案1】:

首先确保您的图片是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);
       }

【讨论】:

    【解决方案2】:
       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); 
    

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

    【讨论】:

    • 你为什么打电话给Handler
    • 在上面我放评论的代码中,你放了你的动态图像视图并设置它的图像。
    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 2021-07-01
    • 2019-08-05
    相关资源
    最近更新 更多