【发布时间】:2019-03-20 15:27:15
【问题描述】:
我在 Android 中的 drawable 遇到了麻烦,经过几天的深入研究,我决定向您寻求帮助。
为了满足我的需要,我创建了一个可绘制对象,用于在 Android Studio 的 XML 布局中使用它(文件名为 circle.xml),代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="2"
android:useLevel="false">
<solid android:color="#BABABE"/>
</shape>
</item>
</selector>
这里的颜色设置是通用的,但取决于我使用可绘制对象的情况。
这是我正在使用的ConstraintLayout:
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout11"
android:layout_width="71dp"
android:layout_height="71dp"
android:layout_marginTop="24dp"
android:background="@drawable/circle"
android:backgroundTint="#D95F2B"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</android.support.constraint.ConstraintLayout>
我用以下属性设置了一个新颜色:
android:background="@drawable/circle"
android:backgroundTint="#D95F2B"
设置background属性使圆圈出现在ConstraintLayout中,设置backgroundTint颜色使圆圈的颜色发生变化。
问题是,在某些设备上,它运行良好,但在其他一些设备上,backgroundTint 颜色未应用,圆圈仅保留可绘制对象中设置的颜色。
我知道我可以在我的活动代码中设置颜色,但这并不是我真正想要的。
有解决办法吗?如果需要,请随时问我一些问题。
提前非常感谢!
【问题讨论】:
-
在某些设备上可以正常工作,但在某些其他设备上,
backgroundTint颜色不适用....请提醒设备,即API级别,输入等等。 -
问题是否仅限于设备的特定 Android 版本?
-
它不适用于 API 级别 23 (Honor 5C) 的设备,另一个 API 级别 24 (Sony) 的设备。它在三星 (API 26)、Nexus 6P (API 22)、Pixel 2 (API 26) 上运行良好。这种行为是完全随机的。
-
为什么不将
backgroundTint颜色设置为` -
因为我并不总是使用相同的颜色。一个组件是红色的,另一个是蓝色的,等等
标签: android xml-drawable