Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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_Bitmap_Drawable_Xml Drawable - Fatal编程技术网

Android 使用可提取资源

Android 使用可提取资源,android,bitmap,drawable,xml-drawable,Android,Bitmap,Drawable,Xml Drawable,我遇到此问题,请参阅跟踪堆栈: E/AndroidRuntime(2410): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: <bitmap> requires a valid src attribute E/AndroidRuntime(2410):由以下原因引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#5:需要有效的sr

我遇到此问题,请参阅跟踪堆栈:

E/AndroidRuntime(2410): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: <bitmap> requires a valid src attribute
E/AndroidRuntime(2410):由以下原因引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#5:需要有效的src属性
我的xml文件如下所示:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/btn_1"/>
    </item>
</layer-list>

btn_1是可绘制资源中的另一个xml文件 当我使用图像(*.png)而不是可绘制的xml时,这没关系

我可以使用一个可绘制资源作为src来位图吗? 以防万一,这里是我的btn_1.xml文件。即使btn_1文件没有任何项,它也不起作用

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/btn_arrow_bg_red"/>
<item>
    <bitmap
        android:gravity="center"
        android:src="@drawable/btn_arrow_white" />
</item>
</layer-list>

位图的源代码不能是可绘制的xml。因为,例如,如果可能的话,它可能会错误地通过调用自身的xml来创建一个黑洞


假设您有一个xml可绘制A,其中有一个位图,其源是可绘制B。但是在drawableB中,它有一个源为drawablea的位图。这将创建无法解析的循环。这就是为什么您需要提供一个图像作为位图的源以避免任何混淆

以避免错误:二进制XML文件行#XXX:需要有效的src属性

在图层列表中,使用:

<item android:drawable="@drawable/image" />

而不是:

<item>
  <bitmap android:src="@drawable/image"/>
</item>

最小SDK:API 23

drawable/yourDrawable.xml 在下面的代码中,我有一个向量作为背景作为第一个项目,在第二个项目中,以自定义尺寸为中心的徽标位于背景之上

<layer-list
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/background_in_svg_1">

    </item>
    <item
        android:width="200dp"
        android:height="60dp"
        android:gravity="center_vertical|center_horizontal"
        android:drawable="@drawable/logo_in_svg_2"/>
</layer-list>

注:截至今天,API 23的累积分布为84.9%。所以你可以考虑一个更低API的替代方案

德国劳埃德船级社


如果要使用选择器更改色调属性,请仅为颜色创建选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/white" android:state_pressed="true" />
    <item android:color="@color/white" android:state_activated="true" />
    <item android:color="@color/green" />
</selector>

然后将其用作android中的颜色:色调

<ImageView
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:tint="@color/tint_menu_item"
    android:src="@drawable/ic_menu_home" />


thx。但是,嗯,我该怎么办?我需要将一个可绘制的xml资源置于另一个资源之上,但我的资源正在扩展。。。我必须做什么来避免扩展xml可绘制资源?并且没有重力参数…当我使用矢量图像作为位图时,我遇到了这个错误(
需要有效的src属性
)。我的解决方案是-使用@Santiago Rivas answer-或者使用另一个图像(不是矢量图像)谢谢这个Waqas,我有完全相同的问题(但没有合并,因为这标记为已回答)-但我要求的是解决方案:@waqaslam,您的答案是正确的:您不能将可绘制的XML作为位图标记的源。我感到困惑的是您的解释:在引用XML资源时,循环引用可以发生在任何上下文中。在我看来,这是框架中的一个设计约束。第二部分是无关紧要的,但是如果我需要tileMode呢?是的,如果我需要tileMode、tint或位图上的任何其他属性呢…?这对我来说是真正的解决方案!!这显示了我的drawable,但它始终显示全屏大小,而不是API 28上的正常大小。此解决方案没有解释它们之间的差异,并且在新的API版本上出现了中断。请注意,宽度和高度只有在min高于23@Skizo-奥兹ᴉʞ的最新答复。非常感谢。