android 何时使用attrs.xml,何时使用dimens.xml?

iyfjxgzm  于 2023-01-15  发布在  Android
关注(0)|答案(2)|浏览(135)

我喜欢将AppLovin的广告集成到我的Android应用程序中。
他们在文件中写道:
在res/values/attrs.xml中声明50 dp的基本横幅高度:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="banner_height">50dp</dimen>
</resources>

我也有一个dimens.xml,其中包含了我的应用程序的其他〈dimen... value。

attrs.xml和dimens.xml之间的区别是什么?在这种情况下应该使用什么?

3b6akqbq

3b6akqbq1#

attrs.xml是一个允许您在XML布局文件中为视图定义定制属性的文件。这些属性可用于定制视图的外观和行为,并可在Java代码中以编程方式访问。
另一方面,dimens.xml是一个允许您定义要在应用程序中使用的维值的文件。这些值可用于设置XML布局文件中视图的大小和布局,也可在Java代码中以编程方式访问。
在这种情况下,您应该使用dimens.xml定义banner_height维度,因为您将使用此值设置布局中横幅广告视图的高度。
您也可以使用attrs.xml定义banner_height属性,但是由于您定义的是维度值而不是属性,因此最好使用dimens.xml。

jdg4fx2g

jdg4fx2g2#

实际上这并不重要-<attr><dimen>都是 value 资源,你可以把它们放在res/values文件夹的任何文件中。它们都将被合并到同一组资源中,所以实际使用的文件由你决定!所以如果你愿意,你可以这样做:

# res/values/whatever.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="someDimension">48dp</dimen>
    <attr name="someColour" format="color"></attr>
</resources>

它的工作原理和你使用attrs.xmldimens.xml完全一样,只是约定把attrdeclare-styleable的东西放在一个叫做attrs.xml的文件里,所有的维度资源放在dimens.xml里,所有的字符串放在strings.xml里......
但是你不必这样做,这取决于你!例如,你可能希望 * 某些资源字符串 * 被存储在一个不同的文件中,用于组织(也许它们不应该被翻译)。或者,也许一些值是所有配置所共有的,你希望它们在一个文件中,你希望有一个单独的文件来存储合格的东西(基于API级别,夜间主题等文件夹)

相关问题