【问题标题】:Access a image dynamically from res folder android从 res 文件夹 android 动态访问图像
【发布时间】:2013-04-18 06:16:12
【问题描述】:

我在 res 文件夹中有这样的图像

我想像这样动态访问这个

holder.Viewcover.setImageDrawable(Drawable.createFromPath("R.id." + CoverimgUrl.get(position)));

CoverimgUrl 是一个有两个图像名称的列表,一个是 book_cover 和另一个是 blank_image 这个数组是动态生成的,所以我怎么能从该列表中设置此图像

一句话,如何动态访问可绘制文件夹中的图像,我需要从数组列表中获取该图像名称?

【问题讨论】:

    标签: android android-image


    【解决方案1】:
    Resources res = getResources();
    String mDrawableName = "image_name";
    int resourceId = res.getIdentifier(mDrawableName , "drawable", getPackageName());
    Drawable drawable = res.getDrawable(resourceId);
    icon.setImageDrawable(drawable );
    

    【讨论】:

      【解决方案2】:

      首先制作CoverimgUrl整数列表

      List<Integer> CoverimgUrl =new ArrayList<Integer>();
                  CoverimgUrl.add(R.drawable.book_cover);
                  CoverimgUrl.add(R.drawable.blank_image);
      

      然后

      holder.Viewcover.setImageResource(CoverimgUrl.get(position));
      

      【讨论】:

        【解决方案3】:

        createFromPath 需要文件的路径,而不是 ID。

        您可以使用以下内容:

        int id = getResources().getIdentifier(CoverimgUrl.get(position), "id", getPackageName()); holder.Viewcover.setImageDrawable(getResources().getDrawable(id));

        getIdentifier() 从字符串中获取 ID。当您使用“R”类时,它包含用于 id 的静态整数。所以R.id.some_name其实是一个整数,就是some_name资源的id。

        一旦你通过 getIdentifier 得到这个整数,你就可以使用 getResources().getDrawable() 来获取具有给定 ID 的 drawable。

        让我知道这是否有效。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-07
          • 1970-01-01
          • 1970-01-01
          • 2011-11-24
          • 1970-01-01
          • 1970-01-01
          • 2011-07-25
          相关资源
          最近更新 更多