AOSP 鼠标指针样式

Android Open Source Project — Vector Drawable Mouse Cursors

📦来源: AOSP main 分支
📅Copyright 2024+
🎯共 25 种指针
🎨深色/浅色双主题

📐 主题颜色系统

Android 主题属性 → SVG 颜色映射

AOSP 矢量指针使用主题属性实现深色/浅色自动适配。本仓库提供预渲染的双主题 SVG。

pointerIconVectorFill
深色: #000 / 浅色: #FFF
pointerIconVectorStroke
深色: #FFF / 浅色: #000
Spot Fill
触控板固定色
Copy Accent
复制指针绿色
NoDrop Accent
禁止放置红色

基础指针 6

TYPE_ARROW 深色
TYPE_ARROW 浅色
TYPE_ARROW
默认箭头指针
热点: 4.5dp, 3.5dp 文件: pointer_arrow
TYPE_HAND 深色
TYPE_HAND 浅色
TYPE_HAND
手型指针(链接/可点击)
热点: 9.5dp, 2.5dp 文件: pointer_hand
TYPE_TEXT 深色
TYPE_TEXT 浅色
TYPE_TEXT
I-beam 文本选择光标
热点: 12dp, 11dp 文件: pointer_text
TYPE_VERTICAL_TEXT 深色
TYPE_VERTICAL_TEXT 浅色
TYPE_VERTICAL_TEXT
垂直文本选择光标
热点: 12dp, 12dp 文件: pointer_vertical_text
TYPE_CROSSHAIR 深色
TYPE_CROSSHAIR 浅色
TYPE_CROSSHAIR
十字准星,精确定位
热点: 12dp, 12dp 文件: pointer_crosshair
TYPE_CELL 深色
TYPE_CELL 浅色
TYPE_CELL
单元格选择,用于表格
热点: 12dp, 12dp 文件: pointer_cell

操作指针 7

TYPE_CONTEXT_MENU 深色
TYPE_CONTEXT_MENU 浅色
TYPE_CONTEXT_MENU
上下文菜单指针
热点: 4.5dp, 3.5dp 文件: pointer_context_menu
TYPE_HELP 深色
TYPE_HELP 浅色
TYPE_HELP
帮助指针,带问号图标
热点: 4.5dp, 3.5dp 文件: pointer_help
TYPE_GRAB 深色
TYPE_GRAB 浅色
TYPE_GRAB
可抓取状态,元素可拖动
热点: 12dp, 12dp 文件: pointer_grab
TYPE_GRABBING 深色
TYPE_GRABBING 浅色
TYPE_GRABBING
抓取中状态,正在拖动
热点: 12dp, 12dp 文件: pointer_grabbing
TYPE_COPY 深色
TYPE_COPY 浅色
TYPE_COPY
复制操作指针,带绿色加号
热点: 12dp, 12dp 文件: pointer_copy
TYPE_ALIAS 深色
TYPE_ALIAS 浅色
TYPE_ALIAS
别名/快捷方式指针
热点: 12dp, 12dp 文件: pointer_alias
TYPE_NO_DROP 深色
TYPE_NO_DROP 浅色
TYPE_NO_DROP
禁止放置指针,带红色禁止符号
热点: 12dp, 12dp 文件: pointer_nodrop

调整指针 5

TYPE_ALL_SCROLL 深色
TYPE_ALL_SCROLL 浅色
TYPE_ALL_SCROLL
全方向滚动,四向移动
热点: 12dp, 12dp 文件: pointer_all_scroll
TYPE_HORIZONTAL_DOUBLE_ARROW 深色
TYPE_HORIZONTAL_DOUBLE_ARROW 浅色
TYPE_HORIZONTAL_DOUBLE_ARROW
水平双向箭头,左右调整
热点: 12dp, 12dp 文件: pointer_horizontal_double_arrow
TYPE_VERTICAL_DOUBLE_ARROW 深色
TYPE_VERTICAL_DOUBLE_ARROW 浅色
TYPE_VERTICAL_DOUBLE_ARROW
垂直双向箭头,上下调整
热点: 12dp, 12dp 文件: pointer_vertical_double_arrow
TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW 深色
TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW 浅色
TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW
右上-左下对角线调整
热点: 12dp, 12dp 文件: pointer_top_right_diagonal_double_arrow
TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW 深色
TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW 浅色
TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW
左上-右下对角线调整
热点: 12dp, 12dp 文件: pointer_top_left_diagonal_double_arrow

功能指针 4

TYPE_ZOOM_IN 深色
TYPE_ZOOM_IN 浅色
TYPE_ZOOM_IN
放大镜指针,带加号
热点: 12dp, 12dp 文件: pointer_zoom_in
TYPE_ZOOM_OUT 深色
TYPE_ZOOM_OUT 浅色
TYPE_ZOOM_OUT
缩小镜指针,带减号
热点: 12dp, 12dp 文件: pointer_zoom_out
TYPE_HANDWRITING 深色
TYPE_HANDWRITING 浅色
TYPE_HANDWRITING
手写笔指针
热点: 12dp, 12dp 文件: pointer_handwriting
TYPE_WAIT 深色
TYPE_WAIT 浅色
TYPE_WAIT 动画
等待/加载旋转动画(80帧)
热点: 12dp, 12dp 文件: pointer_wait

触控板光标 3

TYPE_SPOT_HOVER 深色
TYPE_SPOT_HOVER 浅色
TYPE_SPOT_HOVER 固定色
触控板悬停光标(双环同心圆)
热点: 12dp, 12dp 文件: pointer_spot_hover
TYPE_SPOT_TOUCH 深色
TYPE_SPOT_TOUCH 浅色
TYPE_SPOT_TOUCH 固定色
触控板触摸光标(单环)
热点: 12dp, 12dp 文件: pointer_spot_touch
TYPE_SPOT_ANCHOR 深色
TYPE_SPOT_ANCHOR 浅色
TYPE_SPOT_ANCHOR 固定色
触控板锚点光标(三层同心圆)
热点: 12dp, 12dp 文件: pointer_spot_anchor

📂 目录结构

aosp-cursors-temp/ ├── index.html # 本页面(可视化参考) ├── README.md # 项目说明 ├── generate.py # 生成脚本(可复现) ├── source/ # AOSP 原始文件 │ ├── vectors/ # VectorDrawable XML(矢量图形) │ ├── icons/ # pointer-icon XML(热点定义) │ ├── icons-large/ # 大尺寸变体热点定义 │ └── wait/ # 等待动画帧(88帧) ├── svg/ # 预渲染 SVG │ ├── dark/ # 深色主题(24种) │ └── light/ # 浅色主题(24种) └── web/ # Web 使用资源 ├── cursors.css # CSS cursor 样式表 └── cursors.json # 结构化元数据

💡 使用方法

方法一:CSS 自定义光标

.my-element { cursor: url("./svg/dark/pointer_arrow.svg") 4 3, auto; } /* 浅色模式自动切换 */ @media (prefers-color-scheme: light) { .my-element { cursor: url("./svg/light/pointer_arrow.svg") 4 3, auto; } }

方法二:引入预置 CSS 类

<link rel="stylesheet" href="web/cursors.css"> <div class="cursor-arrow">悬停查看箭头指针</div> <div class="cursor-hand">悬停查看手型指针</div>