【问题标题】:how to load images from resources如何从资源中加载图像
【发布时间】:2014-01-29 15:53:49
【问题描述】:

如何从 GridView 适配器的资源文件夹中加载图像?

我在资源文件夹中有 200 张图片,我将它们命名为 name_1.png,name_2.png。

我想将图像和文本视图加载到 android gridview 元素中,并根据资源文件夹中的数字显示图像。

我可以显示文本视图数据,但不能显示图像。

谁能建议我如何做到这一点。我在想我必须在 getview 方法中编写代码来更改图像。

这是我试过的getview方法

【问题讨论】:

    标签: android gridview imageview


    【解决方案1】:

    将您的图像放入可绘制文件夹并按名称访问它们,然后按名称访问它们。

    int resourceId = context.getResources().getIdentifier(name, "drawable", 
          context.getPackageName());
    

    然后你就可以使用资源了

     imageView.setImageResource(resourceId);
    

     imageView.setBackgroundResource(resourceId);
    

    【讨论】:

    • 我是这样写的:for (int i = 0; i
    • 工作正常!我还有一个问题。实际上问题是,name_of_imagei 将相同的图像加载到不同的类别,因为每个类别的执行相同。我该如何解决这个问题?
    【解决方案2】:

    如果您使用 kotlin 并喜欢使用它的扩展功能,则只是对已接受答案的方便重构:

    fun ImageView.loadDrawableFromName(name:String, ctx: Context, visible:Int=View.VISIBLE){
        val resId = ctx.resources.getIdentifier(name, "drawable", ctx.packageName)
        this.setImageResource(resId)
        this.visibility = visible
    }
    

    你可以用两种方式调用它:

    imgname="IMGNAME"
    myimageview.loadDrawableFromName(imgname, ctx)
    

    imgname="IMGNAME"
    myimageview.loadDrawableFromName("@drawable/$imgname", ctx)
    

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多