Android 中定义图片的资源文件

---恢复内容开始---

   Android中定义图片的Id数组可以在java代码中直接通过new定义,之后使用,还有一种方法是在xml资源文件中直接定义,然后再java代码中通过函数可以获取xml代码中定义的资源文件。当然第二中方法更好一点
  开始的时候我定义资源文件的时候是这样定义的
<integer-array name="actions_images">
  <item>@drawable/pencil1</item>
  <item>@drawable/pencil2</item>
  <item>@drawable/pencil3</item>
  <item>@drawable/pencil4</item>
  <item>@drawable/pencil5</item>
  <item>@drawable/pencil6</item>
</integer-array>

然后再代码中试图使用 

getResources().getIntArray 

  来获取资源文件中定义的图片的资源文件,但是神奇的一幕发生了, 图片的地方是空白的,多次试验之后还是空白,屡试屡败,最后经过百度之后发现应该这样写:

<string-array 
        name = "Main_List_Img_Array">
        <item>@drawable/bomb10</item>
        <item>@drawable/bomb11</item>
        <item>@drawable/bomb12</item>
        <item>@drawable/bomb13</item>
        <item>@drawable/bomb14</item>
</string-array>

  然后再java代码中应该这样获取资源文件:

TypedArray Img_Type_Array = getResources().obtainTypedArray(R.array.Main_List_Img_Array);
int[] Main_List_Img = new int[Img_Type_Array.length()];
for ( int i = 0; i < Main_List_Img.length; i++ )
{
    Main_List_Img[i] = Img_Type_Array.getResourceId(i, 0);
}

  经过本人试验,百试不爽。

 

---恢复内容结束---

   Android中定义图片的Id数组可以在java代码中直接通过new定义,之后使用,还有一种方法是在xml资源文件中直接定义,然后再java代码中通过函数可以获取xml代码中定义的资源文件。当然第二中方法更好一点
  开始的时候我定义资源文件的时候是这样定义的
<integer-array name="actions_images">
  <item>@drawable/pencil1</item>
  <item>@drawable/pencil2</item>
  <item>@drawable/pencil3</item>
  <item>@drawable/pencil4</item>
  <item>@drawable/pencil5</item>
  <item>@drawable/pencil6</item>
</integer-array>

然后再代码中试图使用 

getResources().getIntArray 

  来获取资源文件中定义的图片的资源文件,但是神奇的一幕发生了, 图片的地方是空白的,多次试验之后还是空白,屡试屡败,最后经过百度之后发现应该这样写:

<string-array 
        name = "Main_List_Img_Array">
        <item>@drawable/bomb10</item>
        <item>@drawable/bomb11</item>
        <item>@drawable/bomb12</item>
        <item>@drawable/bomb13</item>
        <item>@drawable/bomb14</item>
</string-array>

  然后再java代码中应该这样获取资源文件:

TypedArray Img_Type_Array = getResources().obtainTypedArray(R.array.Main_List_Img_Array);
int[] Main_List_Img = new int[Img_Type_Array.length()];
for ( int i = 0; i < Main_List_Img.length; i++ )
{
    Main_List_Img[i] = Img_Type_Array.getResourceId(i, 0);
}

  经过本人试验,百试不爽。

 
posted @ 2015-05-04 19:58  三生石1314  阅读(611)  评论(1)    收藏  举报