Android图层列表:app:srcCompat中位图问题

28

更新至 Studio 2.3 后,当我尝试使用矢量图创建层列表时,提示使用 app:srcCompat 替代 bitmap 中的 android:src

请问谁能帮助我将 矢量图可用于层列表?

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@color/colorWhite" />

<item>
    <bitmap
        android:gravity="center"
        app:srcCompat="@drawable/login">
    </bitmap>

</item>

</layer-list>

已添加

vectorDrawables.useSupportLibrary = true

这个有什么进展吗? - Tushar Gogna
目前还没有任何东西。 - Boban
好的。我要尝试一些东西。如果你也遇到了什么,请告诉我。 - Tushar Gogna
我遇到了完全相同的问题。你还没有解决吗? - Breeno
报告为错误 https://issuetracker.google.com/issues/123822220 - Piyush Kukadiya
3个回答

22

我已经为你的问题找到了解决方案

将第二项修改为:

<item android:gravity="center" android:drawable="@drawable/login"/>

更新

这将导致API < 21崩溃。没有更好的方法。


有没有人找到了一个在 API < 21 上不会导致应用程序崩溃的解决方案? - Franco
在某些 Android 版本中,矢量图绘制看起来很丑(变形)。 - user25
@user25你能说一下是哪些设备吗?或者是哪些API版本? - DrMorteza
你可以为API < 21添加一个png,虽然这会导致图像失真,但不会再崩溃了。现在你可能要考虑将minSDK提高到21(目标是截至目前85%的Android手机)。 - ueen

6
我成功地通过以下方式完成了它:
<item
    android:gravity="center"
    android:drawable="@drawable/login" />

错误:未找到属性drawable(又名app.name:drawable) - behelit

-4

不要做这样的事情:

<item>
    <bitmap
        android:gravity="center"
        app:srcCompat="@drawable/login">
    </bitmap>
</item>

你需要按照以下方式声明背景:

<item
    android:gravity="center"
    app:srcCompat="@drawable/login"/>

此外,请确保元素app schema已呈现:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto">
    ....
</layer-list>

我认为 <item> android:gravity="center" app:srcCompat="@drawable/login" </item> 不是有效的,你是不是想说 <item android:gravity="center" app:srcCompat="@drawable/login"> </item> - Franco
5
由于某种原因,这个解决方案对我无效。报错信息为:“<item> 标签要求一个 'drawable' 属性或定义 drawable 的子标签”。 - Lukas1
这是一个随机的答案!@JoseF,你自己测试过吗? - user25
@JoseF 嗯... app:srcCompat="@drawable/login" 永远不会起作用,它只适用于 ImageView - user25
但是我们可以在item中使用android:drawable = "@drawable/login"(它甚至适用于矢量图形)。 - user25

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接