# XCL-Charts: Android charts drawn straight on the Canvas

> XCL-Charts renders bar, pie, radar, funnel, gauge and a dozen other chart families directly on the Android Canvas, and the project ships as source with a Gradle wrapper rather than as a published artifact, with its last commit dated 2017-07-07.

**xcltapestry/XCL-Charts** — GitHub describes it as XCL-Charts is a free, easy-to-use and highly customizable charting library for Android, drawn with Android Canvas. Supports bar, pie, stacked, area, line, spline, donut, rose, gauge, radar, funnel, scatter, bubble and range-bar charts, plus zooming, gestures, animations, multi-axis display and reference lines. The repository metadata lists Java as its primary language. The metadata lists the Apache-2.0 license. This article stays within the project description and details documented in the GitHub repository README.

- Repository: https://github.com/xcltapestry/XCL-Charts
- Website: http://blog.csdn.net/xcl168/article/details/29675613
- Stars: 4,011 · Forks: 1,119
- Language: Java
- License: Apache-2.0
- Published: 2026-08-13 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/xcltapestry-xcl-charts

## The rendering path is the Android Canvas itself

XCL-Charts is written in Java and draws its charts with Android's native Canvas rather than wrapping a charting view from elsewhere or embedding a web view. That single design choice is what produces the parts of the catalogue that are unusual for a mobile library: three dimensional and non three dimensional variants of the bar and pie charts, backward facing bars, and a Nightingale rose chart, all reached through the same drawing surface. The project describes itself as easy to use and flexible to customise, and the source layout backs that up, since the top level of the repository holds a library module, a separate demo application, a doc directory, a screens directory and a version directory next to the Gradle files. There is no rendering engine in the list because the platform already provides one.

## The README lists nineteen chart types, the repository description lists seventeen

The two lists do not agree, and the difference is informative. The README, under its V2.4 heading, names bar in 3D, non 3D and backward form, pie in 3D and non 3D, stacked bar, area, line, spline, donut, rose, dial, gauge, radar, circle, arc comparison, scatter, bubble, range bar, wind rose, quadrant and funnel. The short repository description names a shorter set: it drops wind rose and quadrant, and instead spends its extra words on horizontal and vertical bar orientations. Both spell the donut chart as Dount Chart. So the catalogue was edited in two places at different times, and the README is the longer and more recent of the two, which is the one to trust when you are checking whether a chart type exists. Everything else in the two lists matches name for name.

## Interaction, overlays and mixed charts are where the work sits

Read past the chart names and the feature list is the more telling part. Interaction covers gesture zoom, panning across the chart, and tap responses. Composition covers overlaying several charts in one view, mixing chart types, and switching the chart type while keeping the same data source, which is what makes it usable for a dashboard that lets a reader drill from a summary to a detail view. Annotation and reference lines let you mark points on the data. Axis handling includes multiple X and Y axes, axis lines at arbitrary positions, and a switch between tick alignment styles on bar charts. There is also a dynamic legend and animation support. A library that draws nineteen static pictures would not need any of this; a library meant for live dashboards needs all of it.

## There is no install command and no published artifact

Nothing in the README tells you how to add XCL-Charts to a project. There is no Gradle dependency line, no Maven coordinate and no release to point at, because the repository has no GitHub releases at all. What it has instead is source: a root build.gradle and settings.gradle, a checked in Gradle wrapper with both gradlew and gradlew.bat, and separate library and demo modules. The demo module carries its own build.gradle and a proguard-rules.pro file, which is the detail worth noticing, since that file is what a project needs when it intends its code to survive shrinking and obfuscation in a release build. Consuming the library therefore means vendoring the source or wiring the module into your own build, and deciding yourself how it fits your dependency graph.

## Version 2.4 is a line in the README, not a tag

The only version statement anywhere is the bold heading XCL-Charts V2.4 at the top of the README, paired with a version directory in the repository tree. There is no changelog to compare it against, no tag to check out and no release notes, so the number cannot be verified from anything the project publishes. The default branch is master rather than main, and its last push is dated 2017-07-07. Nine years of Android releases have happened since then, which means the compatibility surface, the Gradle plugin it was built against and the support library conventions it assumes are all from that era. If you adopt it, treat the version label as a name for a 2017 snapshot and do not expect the code to have been adjusted for anything newer.

## The documentation path runs through a CSDN blog, not the repository

The README hands the reader off immediately. The homepage recorded with the repository is a CSDN blog article, a second CSDN article is labelled a brief tutorial for the chart library, and a third line points at the author's blog. Contact details are given as an email address at aliyun.com and a QQ group number. The repository does have its own doc directory, and a screens directory alongside it, but the README itself ends on a heading for sample example images with no text after it, so the picture catalogue is not something you get from reading the file top to bottom. One top level folder is named in Chinese for a community chart library showcase, which points to a gallery assembled from other people's work.

## Apache v2 with 4,015 stars on a repository nobody has pushed to in nine years

The licence is unambiguous and stated twice: the README says the project is released under the Apache v2 licence, and Apache-2.0 in the repository metadata, with a LICENSE file at the top level. The popularity numbers are also unambiguous, with 4,015 stars, 1,119 forks and 10 open issues, which makes it one of the more recognised Android chart libraries by star count. Those two facts sit awkwardly together. A large audience with a small open issue count and a nine year old last commit describes a library that was widely adopted and then left alone, not one that is being improved slowly. Nothing in the repository says otherwise, so treat the star count as evidence of past adoption rather than as a signal about the current state of the code.

## Conclusion

Reach for XCL-Charts when you want the full Android view and chart interaction set, touch callbacks, overlays and mixed charts, drawn without a web view, and you are willing to vendor the source. Skip it for anything that needs ongoing upstream fixes, because the default branch has not moved since 2017-07-07 and there is no tagged release to fall back on. Check the tutorial and blog links before starting, since the README itself points there rather than documenting the API, and confirm the Apache v2 terms suit your application.

## FAQ

### How do I add XCL-Charts to an Android project?

The README gives no install command and the repository has no GitHub releases, so there is nothing to add by coordinate. What is published is source: a root build.gradle, settings.gradle, a Gradle wrapper in gradlew and gradlew.bat form, a library module and a demo app whose module includes proguard-rules.pro. Vendoring the source or wiring the module into your own build is the path the layout implies.

### Is XCL-Charts still being maintained?

The default branch, master, has a last push dated 2017-07-07, and the project publishes no releases. The only version marker is the V2.4 line in the README, which cannot be checked against a tag. The repository is not archived, and it carries 4,015 stars, 1,119 forks and 10 open issues.

### Which chart types does XCL-Charts cover?

The README names nineteen: bar in 3D, non 3D and backward form, pie in 3D and non 3D, stacked bar, area, line, spline, donut, rose, dial, gauge, radar, circle, arc comparison, scatter, bubble, range bar, wind rose, quadrant and funnel. On top of that come gesture zoom, panning, tap interaction, chart overlays, annotation, animation, multiple axes, reference lines and switching chart type over one data source.

## Sources

- [Official documentation](http://blog.csdn.net/xcl168/article/details/29675613)
- [Official README](https://github.com/xcltapestry/XCL-Charts#readme)
- [Project repository](https://github.com/xcltapestry/XCL-Charts)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/xcltapestry-xcl-charts
