Merge: Android 官方穿山甲启动图标(自适应)
ci-pangolin / Lint — shellcheck (push) Has been cancelled
ci-pangolin / OpenAPI Sync Check (push) Has been cancelled
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Has been cancelled
ci-pangolin / Flutter — analyze + test (push) Has been cancelled

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-22 23:42:57 +08:00
7 changed files with 106 additions and 17 deletions
@@ -26,7 +26,7 @@
<application
android:label="穿山甲"
android:name="${applicationName}"
android:icon="@drawable/ic_launcher">
android:icon="@mipmap/ic_launcher">
<!-- 主 Activity -->
<activity
@@ -1,16 +0,0 @@
<!-- 占位启动图标(vector,全 API 可用)。正式图标待设计接入后替换。 -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#0F1117"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#E0884F"
android:pathData="M54,28 L80,82 L28,82 Z" />
<path
android:fillColor="#0F1117"
android:pathData="M54,52 L66,76 L42,76 Z" />
</vector>
@@ -0,0 +1,20 @@
<!-- 自适应图标背景层:满幅竖向渐变(对齐 app-icon.svg 的 #C8794A→#9E5630)。
圆角由启动器遮罩负责,背景不做圆角。 -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M0,0L108,0L108,108L0,108Z">
<aapt:attr name="android:fillColor">
<gradient
android:type="linear"
android:startX="54" android:startY="0"
android:endX="54" android:endY="108">
<item android:offset="0.0" android:color="#FFC8794A" />
<item android:offset="1.0" android:color="#FF9E5630" />
</gradient>
</aapt:attr>
</path>
</vector>
@@ -0,0 +1,46 @@
<!-- 自适应图标前景层:穿山甲 mark(取自 logo-mark-white.svg)。
外层 group 把 96 viewBox 缩到 0.8 并居中到 108 画布的安全区(避免被遮罩裁到腿/尾);
内层 group 复刻 SVG 的水平镜像 transform="translate(96,0) scale(-1,1)"。 -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group
android:translateX="15.6"
android:translateY="15.6"
android:scaleX="0.8"
android:scaleY="0.8">
<group
android:translateX="96"
android:scaleX="-1">
<!-- 身体 -->
<path
android:fillColor="#F4EFE8"
android:pathData="M16,59 Q17,51 26,50 Q34,31 45,30 Q55,30 62,37 Q69,41 75,45 Q85,49 89,44 Q92,50 84,52 Q75,53 67,53 Q66,62 60,62 L56,62 Q54,55 49,55 Q47,62 37,62 L33,62 Q31,56 26,56 Q20,59 16,59 Z" />
<!-- 鳞纹 -->
<path
android:strokeColor="#9E5630"
android:strokeWidth="2.4"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:pathData="M26,50 Q34,43 42,50" />
<path
android:strokeColor="#9E5630"
android:strokeWidth="2.4"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:pathData="M36,48 Q44,41 52,48" />
<path
android:strokeColor="#9E5630"
android:strokeWidth="2.4"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:pathData="M46,48 Q54,41 62,49" />
<!-- 眼睛 -->
<path
android:fillColor="#9E5630"
android:pathData="M20.7,55 a2.3,2.3 0 1,0 4.6,0 a2.3,2.3 0 1,0 -4.6,0 Z" />
</group>
</group>
</vector>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 自适应图标(API 26+):橙色渐变背景 + 穿山甲前景,启动器按设备形状统一遮罩。 -->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
@@ -0,0 +1,28 @@
<!-- <API26 回退:满幅渐变 + 穿山甲(无自适应遮罩)。API26+ 用 mipmap-anydpi-v26 自适应版。 -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="96dp"
android:height="96dp"
android:viewportWidth="96"
android:viewportHeight="96">
<path android:pathData="M0,0L96,0L96,96L0,96Z">
<aapt:attr name="android:fillColor">
<gradient
android:type="linear"
android:startX="48" android:startY="0"
android:endX="48" android:endY="96">
<item android:offset="0.0" android:color="#FFC8794A" />
<item android:offset="1.0" android:color="#FF9E5630" />
</gradient>
</aapt:attr>
</path>
<group android:translateX="96" android:scaleX="-1">
<path
android:fillColor="#F4EFE8"
android:pathData="M16,59 Q17,51 26,50 Q34,31 45,30 Q55,30 62,37 Q69,41 75,45 Q85,49 89,44 Q92,50 84,52 Q75,53 67,53 Q66,62 60,62 L56,62 Q54,55 49,55 Q47,62 37,62 L33,62 Q31,56 26,56 Q20,59 16,59 Z" />
<path android:strokeColor="#9E5630" android:strokeWidth="2.4" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M26,50 Q34,43 42,50" />
<path android:strokeColor="#9E5630" android:strokeWidth="2.4" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M36,48 Q44,41 52,48" />
<path android:strokeColor="#9E5630" android:strokeWidth="2.4" android:strokeLineCap="round" android:strokeLineJoin="round" android:pathData="M46,48 Q54,41 62,49" />
<path android:fillColor="#9E5630" android:pathData="M20.7,55 a2.3,2.3 0 1,0 4.6,0 a2.3,2.3 0 1,0 -4.6,0 Z" />
</group>
</vector>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 自适应图标背景色(品牌 clay 色,对齐 design token accent -->
<color name="ic_launcher_background">#E0884F</color>
</resources>