我正在使用Eclipse,Android插件和Sams“自学Android开发”一书自学Android。我有这个奇怪的小问题。我已经能够在res / values目录中创建包含字符串和颜色值的xml文件(colors.xml和strings.xml)。我已经能够在我的Android屏幕的属性(res / layout中的xml)中引用这些值,例如使用“@ string / topTitle”和“@color”等引用设置“Text”和“Text color”属性/ titleColor,“其中topTitle和titleColor在xml文件中定义。
但是:当我创建一个名为“dimens.xml”的文件并且其中包含字体大小时,Eclipse正确地将此文件放在res / values中,但是当我尝试引用这些值时,例如“@ dimension / titleFont”我收到错误“找不到与给定名称匹配的资源。”我尝试了很多不同的名字,我尝试过“@dimens”而不是类型,但仍然没有。如果我进入布局xml文件并将其明确设置为字体大小,例如22pt,它的工作原理。
因此,当我将其设置为res / values时,Eclipse会识别我的“dimens.xml”文件,并允许我对其进行编辑,并将其显示为(维度)值。它只是无法识别我在其他xml文件中引用它。
我正在使用的这本书实际上没有显示维度示例,所以我必须做错事。我检查了Android文档,但看不出任何问题。
任何帮助表示赞赏。感谢。
答案 0 :(得分:8)
从另一个xml文件中引用维度变量(存储在dimens.xml
中(不要认为这里的名称真的很重要,这就是内部的))的正确方法是这样的:
"@dimen/nameOfVariable"
请注意,它既不是尺寸,尺寸或尺寸,但 dimen
!< / p>
如果你查看你的xml文件里面有你的值,这将是有意义的,因为dimen
是存储维度值的xml元素的名称:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<dimen name="someDimension">5dp</dimen>
<dimen name="anotherDimension">10dp</dimen>
</resources>