【发布时间】:2020-12-15 10:49:23
【问题描述】:
我的一个 xml 可绘制对象中有一个形状,它使用了我的 Themes.xml 文件的样式:
<shape android:shape="oval">
<gradient
android:gradientRadius="134dp"
android:startColor="?colorPrimary"
android:centerColor="#000000"
android:endColor="#000111"
android:type="radial" />
</shape>
如您所见,startColor 使用 colorPrimary 属性。但是,当我在 Android Studio 模拟器中启动该应用程序时,它会崩溃而没有构建错误。当我用随机的十六进制颜色替换 ?colorPrimary 时,一切似乎都很好。我正在使用 API 24,据我所知,您可以将 ?colorVariant 用于 >API 21。不知道我在这里做错了什么。
【问题讨论】:
-
你仍然可以使用@color/purple_500 之类的东西。问题不是颜色参考
-
那我怎么能引用 ?colorPrimary 呢?当我使用明暗模式时,我希望有不同的渐变。
-
应该是
?attr/colorPrimary吗? -
如果我使用它,我的应用程序会崩溃
-
与
?attr/colorPrimary?并在主题中定义colorPrimary?
标签: java android xml android-studio android-layout