XML和Java之间的常量值

时间:2013-01-10 17:11:51

标签: java android xml constants

我知道这是一个简单的问题,所以希望对任何人都不会有任何麻烦。

如何在项目中拥有一个可以从View的XML和.java文件访问的常量浮点值?

我已尝试在View的资源文件中设置浮点值:

<attr name="cornerRadius" format="float">15.0dp</attr>

我相信应该怎么做,但我只是用直觉做到了。我真的很想在这个问题上谷歌。

现在,为了用Java访问它,我试过了:

float myFloat = getContext().obtainStyledAttributes(attrs, R.styleable.MyView).getFloat(R.styleable.MyView_cornerRadius, 0.0f);

这让我失望,因为它没有得到正确的值,而是我在函数中传递的值。为什么我将浮点值传递给此函数?必须有不同的选择。

现在,最大的问题是我在XML中访问它..我试过这个:

<corners android:radius="@attrs_my_view/cornerRadius"/>

我也试过这个:

<corners android:radius="@float/cornerRadius"/>

但无济于事。

也许这一切都是完全错误的,但我不知道如何在谷歌搜索这个,因为我不知道它叫什么。它就像根据其含义在字典中查找单词一样。现在不是个好时光。

1 个答案:

答案 0 :(得分:0)

您可以创建一个包含常量的XML文件。这听起来像一个维度,标准地存储在dimens.xml文件中。将其放在res / values文件夹中。

因此,您可能有一个文件(名为dimens.xml),其中包含以下内容:

<resources>
    <dimen name="cornerRadius">15dp</dimen>

</resources>

然后你可以使用普通的R.class(即R.dimen.cornerRadius)引用它 - 你可以从XML或Java引用它。