Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 圆形可绘制在某些设备上无法渲染颜色_Android_Xml Drawable - Fatal编程技术网

Android 圆形可绘制在某些设备上无法渲染颜色

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

我在安卓系统中遇到了一个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>
        <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>

@可拉伸/圆形
@颜色/你的颜色
该样式将与约束布局一起使用

  • 使用包装器视图,即:
Xml:-


很明显,可绘制的工作应该是这样的,因此问题在于
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>

@可拉伸/圆形
@颜色/你的颜色
该样式将与约束布局一起使用

  • 使用包装器视图,即:
Xml:-



在某些设备上效果良好,但在其他一些设备上,
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"
 >
>