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

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

已经开源了,代码放在github,地址是https://github.com/Steven-Luo/android-bezier-curve-chart
用法很简单
布局文件少不了:
<com.cn.naive.lib.view.BezierCurveChart
android:id="@+id/bezier_curve_chart"
android:layout_width="match_parent"
android:layout_height="260dp"
android:layout_margin="10dp" />
Java代码
List<BezierCurveChart.Point> points=new ArrayList<BezierCurveChart.Point>();
for(int i=0;i<10;i++) {
points.add(new Point(i, (float) (Math.random()*10)));
}
String tipText = "3 hours/day on average"; BezierCurveChart bezierCurveChart =
(BezierCurveChart) rootView.findViewById(R.id.bezier_curve_chart);
bezierCurveChart.init(points,
new String[] { "0:00", "6:00", "12:00", "18:00", "24:00" }, tipText);
上面那些数据点是使用随机数模拟的,最关键的是BezierCurveChart的init方法,第一个参数是数据点,第二个是底部的标签,最后一个参数是中部的提示条,不需要的话,把最后一个参数设置为null即可。
Android 贝塞尔曲线库的更多相关文章
- Android动画曲线库AndroidEasingFunctions
Android动画曲线库AndroidEasingFunctions AndroidEasingFunction是基于Easing Function(缓动函数)的Android动画曲线库.它提供了九大 ...
- Android 贝塞尔曲线 折线图
1.贝塞尔曲线:http://baike.baidu.com/view/60154.htm,在这里理解什么是贝塞尔曲线 2.直接上图: 3.100多行代码就可以画出贝塞尔曲线,直接上代码 packag ...
- Android -- 贝塞尔曲线公式的推导
1,最近看了几个不错的自定义view,发现里面都会涉及到贝塞尔曲线知识,深刻的了解到贝塞尔曲线是进阶自定义view的一座大山,so,今天先和大家来了解了解. 2,贝塞尔曲线作用十分广泛,简单举几个的栗 ...
- Android -- 贝塞尔曲线公式的推导和简单使用
1,最近看了几个不错的自定义view,发现里面都会涉及到贝塞尔曲线知识,深刻的了解到贝塞尔曲线是进阶自定义view的一座大山,so,今天先和大家来了解了解. 2,贝塞尔曲线作用十分广泛,简单举几个的栗 ...
- Android 贝塞尔曲线解析
相信很多同学都知道"贝塞尔曲线"这个词,我们在很多地方都能经常看到.利用"贝塞尔曲线"可以做出很多好看的UI效果,本篇博客就让我们一起学习"贝塞尔曲线 ...
- Android 贝塞尔曲线的浅析
博客也开了挺长时间了,一直都没有来写博客,主要原因是自己懒---此篇博客算是给2017年一个好的开始,同时也给2016年画上一个句点,不留遗憾. 那就让我们正式进入今天的主题:贝塞尔曲线. 首先,让我 ...
- Android 贝塞尔曲线
博客图片备份位置:
- Android贝塞尔曲线应用-跳动的水滴
主要通过6个控制点实现. val startPoint = PointF() val endPoint = PointF() val control1 = PointF() val control2 ...
- Android中贝塞尔曲线的绘制方法
贝塞尔曲线,很多人可能不太了解,什么叫做贝塞尔曲线呢?这里先做一下简单介绍:贝塞尔曲线也可以叫做贝济埃曲线或者贝兹曲线,它由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋.一般的矢量图形软件常 ...
随机推荐
- KinerCode.js
1 /*验证码*/ function KinerCode(options) { this.opt = this.extend(true, this.options, options); this.op ...
- DataGridview 自动切换到 下一行
if (m_dgvList.SelectedRows.Count > 0) { int intCurrApp = m_dgvList.SelectedRows[0].Index; if (int ...
- [转]OOAD基本概念
转载地址:http://www.cnblogs.com/zfc2201/archive/2012/12/09/2810532.html 尊重原作者,转载请注明 学习目标: 1.理解与掌握面向对象的概念 ...
- iOS 微信分享
1.注册微信开放平台账号:https://open.weixin.qq.com 2.创建应用 设置图片可以使用一个小工具,详情http://www.cnblogs.com/czq1989/p/5073 ...
- Oracle导出表(即DMP文件)的两种方法
转载:http://blog.csdn.net/lanpy88/article/details/7580691 方法一:利用PL/SQL Developer工具导出: 菜单栏---->Too ...
- Android 中onConfigurationChanged问题
onConfigurationChanged 不生效问题解决方案: 1).首先,需要重写onConfigurationChanged函数 @Override public void onConf ...
- 深入理解javascript中实现面向对象编程方法
介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是 ...
- [读书笔记]自动装箱的陷阱以及==与equals
先看一段代码,来自周志明的<深入理解Java虚拟机>. Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Intege ...
- PHP memcache 安装问题
第一步:下载 memcached.exe 第二步:c:\window\system32\cmd.exe 管理员启动 第三步: memcached.exe -d start (错误) failed ...
- 错误集:js解析jQuery.post返回的xml之Could not find action or result
js里用jQuery.post去后台查询数据,返回的是xml格式的数据流. js代码: var params = ""; params = encodeURI(params); v ...