Android 圆形可绘制在某些设备上无法渲染颜色
我在安卓系统中遇到了一个drawable的问题,经过几天的深入研究,我决定向你寻求帮助 为了满足我的需要,我在Android Studio中创建了一个可在XML布局中使用的drawable(文件名为circle.XML),代码如下:Android 圆形可绘制在某些设备上无法渲染颜色,android,xml-drawable,Android,Xml Drawable,我在安卓系统中遇到了一个drawable的问题,经过几天的深入研究,我决定向你寻求帮助 为了满足我的需要,我在Android Studio中创建了一个可在XML布局中使用的drawable(文件名为circle.XML),代码如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item
<?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>
我使用以下属性设置了新颜色:
android:background="@drawable/circle"
android:backgroundTint="#D95F2B"
设置background
属性会使圆出现在ConstraintLayout
中,设置backgroundTint
颜色会使圆的颜色发生变化
问题是,在某些设备上,它工作得很好,但在其他一些设备上,backgroundTint
颜色不应用,圆圈仅保留可绘制图形中设置的颜色
我知道我可以在我的活动代码中设置颜色,但这并不是我真正想要的
有什么好办法吗?如果需要,请随时问我一些问题
提前多谢 很明显,可绘制的工作应该是这样的,因此问题在于
android:backgroundTint
事实上,这个属性适用于API的>21,而您可能会在其他一些电话类型中遇到一些奇怪的行为
因此,如果你需要一个通用的循环来在任何地方使用它,有一些解决方法:
- 在可绘制的
中直接使用颜色,似乎对您的情况没有帮助 - 使用
属性代替android:colorBackground
, 您可以将其设置为样式,即:backgroundTint
<style name="YourStyle" parent="YourParent">
<item name="android:background">@drawable/circle</item>
<item name="android:colorBackground">@color/your_color</item>
</style>
@可拉伸/圆形
@颜色/你的颜色
该样式将与约束布局一起使用
- 使用包装器视图,即:
很明显,可绘制的工作应该是这样的,因此问题在于
android:backgroundTint
事实上,这个属性适用于API的>21,而您可能会在其他一些电话类型中遇到一些奇怪的行为
因此,如果你需要一个通用的循环来在任何地方使用它,有一些解决方法:
- 在可绘制的
中直接使用颜色,似乎对您的情况没有帮助 - 使用
属性代替android:colorBackground
, 您可以将其设置为样式,即:backgroundTint
<style name="YourStyle" parent="YourParent">
<item name="android:background">@drawable/circle</item>
<item name="android:colorBackground">@color/your_color</item>
</style>
@可拉伸/圆形
@颜色/你的颜色
该样式将与约束布局一起使用
- 使用包装器视图,即:
在某些设备上效果良好,但在其他一些设备上,backgroundTint
颜色不适用。。。。请提醒设备,即API级别、类型等。问题是否局限于设备的特定Android版本?它不适用于API级别23(荣誉5C)的设备,也不适用于API级别24(索尼)的设备。在三星(API26)、Nexus6p(API22)和Pixel2(API26)上,它也能很好地实现这一点。这种行为完全是随机的。为什么不将backgroundTint
颜色设置为`因为我不总是使用相同的颜色。一个组件是红色的,另一个是蓝色的,在一些设备上,它工作正常,但在一些其他设备上,backgroundTint
颜色不适用。。。。请提醒设备,即API级别、类型等。问题是否局限于设备的特定Android版本?它不适用于API级别23(荣誉5C)的设备,也不适用于API级别24(索尼)的设备。在三星(API26)、Nexus6p(API22)和Pixel2(API26)上,它也能很好地实现这一点。这种行为完全是随机的。为什么不将backgroundTint
颜色设置为`因为我不总是使用相同的颜色。一个组件是红色的,另一个是蓝色的,等等,谢谢你的回复。当我尝试用android:backgroundColor替换backgroundTint时,编译器给了我错误:属性android:backgroundColor notfound@IbrahimAli在哪里使用的样式,请更详细地描述我尝试了样式方法和包装方法,没有人在工作。看起来colorBackground对颜色没有任何影响。@Vinestro对此表示抱歉,但至少包装方式应该有效。谢谢您的回复。当我尝试用android:backgroundColor替换backgroundTint时,编译器给了我错误:属性android:backgroundColor notfound@IbrahimAli在哪里使用的样式,请更详细地描述我尝试了样式方法和包装方法,没有人在工作。看起来colorBackground对颜色没有任何影响。@Vinestro对此表示抱歉,但至少包装方式应该有效。
<ConstraintLayout
android:background="@drawable/circle"
<View
android:background="@color/your_color"
>
>