res文件夹和R.java的问题

时间:2011-03-22 14:11:40

标签: android r.java-file

我正在做教程,而我正在处理关于图像的部分。它说将它们放入res / drawable文件夹中。但我没有该文件夹,而是我有三个:res/drawable-hdpi,r es/drawable-ldpires/drawable-mdpi。那么他们之间有什么不同呢?

我正在使用this教程。

其中一个步骤是:

  

在中创建strings.xml文件   res / values /并编辑要查看的文件   像

已经有strings.xml,结合上述情况,告诉我使用res / drawable,这些教程是否过时了?

本教程的代码如下:

R.id.spinner
R.array.planets_array

R.layout只是简单的枚举。使用布局文件夹中的main.xml。但R.idR.array来自何处。因为它正在日食中说它不知道它们是什么。 R.java会自动更新,所以有人可以告诉我阅读那个ID被添加到R的教程吗?它说

  

R.array.planets_array ID   引用定义的字符串数组   上述

只有它不起作用。我怀疑它是否有所不同,我没有创建strings.xml,因为它在同一位置是相同的文件名。但由于R.java要自动更新,我不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:1)

这些是针对那里的设备范围的不同屏幕分辨率。阅读Android开发者网站上的supporting multiple screens

答案 1 :(得分:1)

只是让你知道R的来源。

R.java文件是一个生成的文件,其中包含指向应用程序中资源的某种指针。它实际上是一个简单的整数,它唯一地标识Android内部资源管理系统中的资源。

R.string标识符是从资源XML文件生成的,例如这个。

<resources>
    <string name="test">This is a test string.</string>
</resources>
字符串数组XML文件中的

R.array个标识符。

<resources>
    <string-array name="days_of_week">
        <item>Monday</item>
        <item>Tuesday</item>
        <item>Wednesday</item>
        <item>Thursday</item>
        <item>Friday</item>
        <item>Saturday</item>
        <item>Sunday</item>
    </string-array>
</resources>

您现在可以使用其标识符R.id.days_of_week访问该数组。

R.id标识符有点特殊。

它们以两种方式生成。第一个是使用View语法在XML布局文件中定义@+id/...时。请注意+符号。

另一种方法是在资源XML文件中定义它们,例如字符串。

<resources>
    <item type="id" name="first" />
    <item type="id" name="second" />
</resources>

然后,您只需在像@id/first这样的布局XML文件中使用它们。请注意,在您声明之前,再次引用没有 +符号。

在代码中,您可以像R.id.first一样使用它。

还有很多其他资源。我想向您转发Application Resources文章,并确保查看Resource Types子文章。

答案 2 :(得分:0)

如果您没有该文件夹,只需创建它。对于你没有像res / drawable-hdpi这样更具体的文件夹中的资源的情况,它基本上是后备的

* -xx文件夹允许您为各种屏幕分辨率提供更具体的drawable(图像)。

同样的原则适用于值/和值-xx /其中xx是国家代码; xx版本允许您翻译UI消息。