java - 更改矢量应用程序图标的背景颜色
问题描述
我正在尝试在 android 上创建一个小助手以获得乐趣,我想使用与谷歌助手相同的图标,但背景较暗,但它不起作用: 我尝试使用带有形状的图层列表(圆形或一个正方形),但它并不完全适合圆形图标。我也试过:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/midnightblue"/>
<item android:drawable="@drawable/ic_assistant"/>
</layer-list>
但正如您在屏幕截图中看到的那样,我得到了相同的结果。你有什么主意吗?
解决方案
尝试将白色设置为启动器图标背景。例如在res/mipmap-anydpi-v26
目录中:
ic_launcher.xml
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher" />
</adaptive-icon>
ic_launcher_round.xml
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_round" />
</adaptive-icon>
在res/drawable
目录中:
ic_launcher_background.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillColor="#FFFFFF"
android:pathData="M0,0h108v108h-108z" />
</vector>
毕竟,我们可以缩放内部图标以强制它包含在圆圈中。
ic_assistant.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="512"
android:viewportHeight="512">
<group
android:scaleX="0.5"
android:scaleY="0.5"
android:translateX="128"
android:translateY="128">
<path
android:fillColor="#4285F4"
android:pathData="M156.268,167.705m-156.268,0a156.268,156.268 0,1 1,312.536 0a156.268,156.268 0,1 1,-312.536 0" />
<path
android:fillColor="#34A853"
android:pathData="M512,182.95c0,17.544 -14.224,31.762 -31.762,31.762s-31.762,-14.218 -31.762,-31.762c0,-17.543 14.224,-31.762 31.762,-31.762S512,165.407 512,182.95z" />
<path
android:fillColor="#EA4335"
android:pathData="M454.829,260.449c0,35.081 -28.438,63.522 -63.523,63.522c-35.088,0 -63.524,-28.441 -63.524,-63.522c0,-35.083 28.437,-63.524 63.524,-63.524C426.392,196.925 454.829,225.367 454.829,260.449z" />
<path
android:fillColor="#FBBC05"
android:pathData="M467.533,424.339c0,42.1 -34.124,76.225 -76.228,76.225c-42.104,0 -76.229,-34.125 -76.229,-76.225c0,-42.098 34.124,-76.227 76.229,-76.227C433.409,348.112 467.533,382.241 467.533,424.339z" />
</group>
</vector>
推荐阅读
- vba - 使用 Excel VBA 将工作簿另存为 .csv.gpg
- imageresizer - imageresizer URL API 将空白添加到小图像
- javascript - 有没有办法检测控制台用户是否正在更改变量
- javascript - 如何使用 Javascript 为多个 id 使用函数
- reactjs - 反应原生文本输入;按下“完成”时触发事件
- jboss - jbpm持久化到Mysql外部数据库
- java - 无法覆盖 apache camel 中处理器之间的 bean 属性
- css - Flex justify-content, align-items 在 Safari 或移动浏览器上不起作用
- git - git错误:致命:身份验证失败
- python - Python3 socket.recv 没有确认