Android 贝塞尔曲线库

最近做的一个小项目需要绘制一些折线图,AChartEngine其实里面包含很多图,虽然是开源的,但毕竟不是自己写的,而且项目稍有点庞大,有些东西修改起来还是得花点时间的,所以最后打算自己写一个,参考了多看阅读的阅读时间曲线效果,先看效果图:

下面这张是没有中间"平均3小时/天"那个小条的效果

已经开源了,代码放在github,地址是https://github.com/Steven-Luo/android-bezier-curve-chart

用法很简单

布局文件少不了:

1 <com.cn.naive.lib.view.BezierCurveChart
2     android:id="@+id/bezier_curve_chart"
3     android:layout_width="match_parent"
4     android:layout_height="260dp"
5     android:layout_margin="10dp" />
Java代码
复制代码
 1 List<BezierCurveChart.Point> points=new ArrayList<BezierCurveChart.Point>();
 2 for(int i=0;i<10;i++) {
 3     points.add(new Point(i, (float) (Math.random()*10)));
 4 }
 5 String tipText = "3 hours/day on average";
 6 
 7 BezierCurveChart bezierCurveChart = 
 8     (BezierCurveChart) rootView.findViewById(R.id.bezier_curve_chart);
 9 bezierCurveChart.init(points, 
10     new String[] { "0:00", "6:00", "12:00", "18:00", "24:00" }, tipText);
复制代码

上面那些数据点是使用随机数模拟的,最关键的是BezierCurveChart的init方法,第一个参数是数据点,第二个是底部的标签,最后一个参数是中部的提示条,不需要的话,把最后一个参数设置为null即可。

posted @   Steven.Luo  阅读(2733)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示