{"adoption": {"forks": 356, "observed_at": "2026-08-28T04:06:27.243532+00:00", "stars": 2217}, "canonical_url": "https://ross.abutalabs.com/products/xbanner", "card": {"archived": false, "artifact_type": "library", "description": ":fire:【图片轮播】支持图片无限轮播，支持AndroidX、自定义指示点、显示提示文字、切换动画、自定义布局，一屏多显、视频图片混合轮播等功能", "domain": ["mobile-development", "android-tools", "frontend"], "enriched": true, "function": ["ui-components", "animation", "image-processing"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["xiaohaibin/XBanner"], "name": "xiaohaibin/XBanner", "platform": [], "pushed_at": "2024-06-28T14:51:44+00:00", "repo": "xiaohaibin/XBanner", "stars": 2217, "tags": ["banner", "viewpager", "carousel", "image-slider", "androidx", "indicator", "auto-play", "android", "mobile"], "topics": ["viewpager", "banner", "transform", "android", "androidx"], "urls": [], "use_cases": ["add an auto-scrolling image banner to an Android app", "infinite loop carousel with custom indicator dots", "show promotional banners with title text on Android", "display multiple banner pages on one screen", "mix video and images in a rotating banner", "customize page transition animations for a slider"], "what_it_is": "XBanner is an Android banner/carousel view library supporting infinite auto-scrolling image rotation with custom indicators, tip text, transition animations, multi-page display, and mixed video/image layouts. It works with both support and AndroidX projects and integrates with Glide/Fresco for image loading.", "when_to_avoid": ["you need a cross-platform (Flutter/React Native) carousel", "you only need a simple ViewPager without banner features", "your project is not Android/Java-based"], "when_to_choose": ["you need a feature-rich, ready-made banner/carousel component on Android", "you want infinite auto-play with pause-on-touch behavior", "you need AndroidX support and flexible indicator/title layouts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xbanner", "repo": "xiaohaibin/XBanner", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.243532+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:45:56.057369+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f0fa17b57b7375f644179a2ef2d63c7ada2d98f3e4a93672a0d8a1c53611f", "fetched_at": "2026-08-28T04:06:27.243532+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaohaibin/XBanner"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3641, "days_push": 796, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}