2

我知道这是一个简单的问题,所以希望它不会对任何人造成困扰。

如何在我的项目中拥有一个可以从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"/>

但无济于事。

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

4

1 回答 1

0

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

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

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

</resources>

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

于 2013-01-10T17:21:16.633 回答