Android Open Source Project — Vector Drawable Mouse Cursors
AOSP 矢量指针使用主题属性实现深色/浅色自动适配。本仓库提供预渲染的双主题 SVG。
TYPE_ARROW
TYPE_HAND
TYPE_TEXT
TYPE_VERTICAL_TEXT
TYPE_CROSSHAIR
TYPE_CELL
TYPE_CONTEXT_MENU
TYPE_HELP
TYPE_GRAB
TYPE_GRABBING
TYPE_COPY
TYPE_ALIAS
TYPE_NO_DROP
TYPE_ALL_SCROLL
TYPE_HORIZONTAL_DOUBLE_ARROW
TYPE_VERTICAL_DOUBLE_ARROW
TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW
TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW
TYPE_ZOOM_IN
TYPE_ZOOM_OUT
TYPE_HANDWRITING
TYPE_WAIT
动画
TYPE_SPOT_HOVER
固定色
TYPE_SPOT_TOUCH
固定色
TYPE_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 # 结构化元数据
.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;
}
}
<link rel="stylesheet" href="web/cursors.css">
<div class="cursor-arrow">悬停查看箭头指针</div>
<div class="cursor-hand">悬停查看手型指针</div>