2014-09-27 26 views
-2

从Web开发背景的人,我需要一些帮助了解一些Android应用程序的Java开发方面的基本语法的:引用在Java中的Android

语境。这些问题是发展培训development.android。 1)如何显示“@string”,“@style”,“@drawable”参考项目上的某个目录,而不明确给出确切的路径和确切的文件夹名称(drawable-hdpi/mdpi/xhdpi文件夹等,strings.xml和styles.xml)?

2)根据教程,当我想给一个新的ID资源定义时,我使用了“@ + id/_”,是在场景后面添加这个作为临时资源的集合编号在运行时使用?例如对于字符串或样式,它会是相同的:“@ + string /”?我在问,因为我知道“@ string/_”引用了“strings.xml”文件,但id资源没有“id.xml”文件。

3)对于操作栏,教程调用Android Android支持类中的themes目录,我不确定如何调用它们,主要是因为它们在不同的Project文件中(Android支持类是在appcompat_v7中),当我在我的“styles.xml”资源文件中没有一个名为“Theme.AppCompact”的资源时,教程只说使用“@ style/Theme.AppCompat”。

对我来说真的很沮丧...会感激这些帮助!

+1

返回文档。所有这一切都在那里解释......等等。 – 323go 2014-09-27 16:12:59

回答

1
  1. Android工具链包含一个称为AAPT的特殊编译器,Android资产打包工具。它知道某些有福的文件夹:res/values,res/drawables,依此类推。它实际上甚至解析文件夹名称以构建多个版本的资源(res/drawables-hdpi等)。 AAPT产生两个工件:一个是进入APK的捆绑资源,另一个是Java源文件,用于名为R的类。如果您包含R类(eclipse将其放入gen目录中)作为应用程序的源代码,那么可以直接从Java代码中引用资源。

  2. 是的。你完全正确。一个ID的价值只在于它与其他ID不同:它是唯一的。 AAPT可以为你做到这一点。如果你想要一个包含random-ish数值的字符串,@ + string/foo可以正常工作。 [事实上,AAPT现在似乎有支票,但是不允许。该点仍然有效]

  3. 主题和样式是一个非常复杂的主题。文档很少,但越来越好。这真的超出了范围。