繁体   English   中英

Android Studio Resource Manager 矢量可绘制预览

[英]Android Studio Resource Manager vector drawable preview

我的项目中有很多矢量可绘制对象。 所有这些都使用 fillColor 作为主题属性。 在这种情况下,资源管理器预览不会显示,直到通过工具将某种颜色设置为可绘制对象。

在此处输入图片说明

如图所示,ic_drag 是红色的,因为 tools:fillColor="#ff0000"。 但是 ic_arrow_back_on_primary 预览是空的。

ic_drag:

 <vector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:width="24dp"
    android:height="24dp"
    android:tint="?attr/colorControlNormal"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path
        android:fillColor="?banan"
        tools:fillColor="#ff0000"
        android:pathData="M20,9H4v2h16V9zM4,15h16v-2H4V15z" />
</vector>

ic_arrow_back_on_primary:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:tint="?attr/colorControlNormal"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path
        android:fillColor="?colorOnPrimary"
        android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
</vector>

如果打开 drawable 的编辑器,则会显示此 drawable 的预览。 使用哪种方式无关紧要:属性或直接颜色。

在此处输入图片说明

有没有办法强制资源管理器在不添加“工具”属性的情况下显示预览?

为了让 Android Studio 渲染该预览,它需要知道要使用什么颜色。

ic_arrow_back_on_primary的情况下, android:tint attr 和android:fillColor attr 都使用主题属性(任何以?开头的属性)。 当然,主题属性取决于当前使用的主题,资源管理器(似乎)没有办法指定用于预览的主题。

因此,不,不添加tools属性就无法显示预览,除非您愿意使用不依赖于当前主题的颜色(这可能不适用于您的用例)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM