如何在android中的数组中存储图像

时间:2018-01-31 17:35:02

标签: android

这是我的java代码 我想将所有图像存储在drawable文件夹中并通过recyclerview访问它,所以我创建了一个数组列表,但它显示错误','

是getImages会返回图片

 public static int[] getImages() {
            int[] images =
                           {R.drawable.1,
                            R.drawable.2,
                            R.drawable.3,
                            R.drawable.4,
                            R.drawable.5,
                            R.drawable.6,
                            R.drawable.7,
                            R.drawable.8,
                            R.drawable.9,
                            R.drawable.10,
                            R.drawable.11};
            return images;
        }

3 个答案:

答案 0 :(得分:2)

resource_name不能以数字开头。

尝试使用:

R.drawable._1 or R.drawable.img1

而不是

R.drawable.1

并相应地重命名图像。

答案 1 :(得分:2)

Android为每个资源文件生成R.java中的常量 - 类。文件名定义常量字段的名称。字段和变量名称不能以数字开头:

  

变量名称区分大小写。变量的名称可以是任何合法的标识符 - 无限长度的Unicode字母和数字序列,以字母开头,美元符号" $"或下划线字符" _"

From: JavaDoc Variables - Naming

答案 2 :(得分:1)

您在

中使用了一个类型化数组
  

arrays.xml

您的/ res文件夹中的

文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="images">
        <item>@drawable/image1</item>
        <item>@drawable/image2</item>
        <item>@drawable/image3</item>
    </array>

</resources>

以这种方式从您的活动中获取数组:

Resources res = getResources();
TypedArray images= res.obtainTypedArray(R.array.images);
Drawable drawable = images.getDrawable(0);

TypedArray images = getResources().obtainTypedArray(R.array.images);

// get resource ID by index
images .getResourceId(i, -1)

// or set you ImageView's resource to the id
mImgView1.setImageResource(images.getResourceId(i, -1));

// recycle the array
images.recycle();