重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

android曲线图,android绘制

请问Android如何画光滑的曲线图??

achartEngine可以的,在生成图的过程中,有一个函数传参数的时候记得它的两个参数是设定折线的光滑度的,你看看文档,绝对可以实现的,我之前做过。

目前创新互联公司已为上千家的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、铜陵网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

Android 曲线图 绘制曲线

首先我们看看onDrwa 里面做了什么 从图里面我们可看到 绘制的框线方法,绘制data线方法 绘制线上的圆

从最上面的图效果来看我们不需要圆 也不需要折线,但是框线要保留 因此我们需要 把

这个几个方法 改成public ,到时候继承之后重写他 不调用父方法即可

接下来我们创建一个 类继承 DrawLineChart 重写 DrawLineCircle,DrawLine 方法

这样我们就保留 了框线, 取消了圆和折线的绘制

接下来在DrawLine 里面绘制曲线

code

/code

code

/code

code

/code

code

package com.app_chart;

/code

android中这样的曲线要怎么绘制

绘制曲线图首先需要画好横竖坐标轴建立坐标系,比如坐标系中的100距离应该在canvas中绘制多长,这个是需要计算的,其实坐标体系的建立是最复杂的,我看过很多第三方库的建立方法都不一样,有的要灵活一些,有的比较死板。至于绘制曲线要么是用Canvas.drawLine方法,要么是用Path.lineTo方法,看你自己的习惯。

为了做出一个外观良好的曲线图,我参考了两个开源代码,第一个的曲线图绘制限制较多,使用范围太窄,但是有数据变化时的动画效果。第二个的适用范围很广,他能根据数据集合自动计算横纵坐标的个数,在canvas上单元格的距离,只需输入坐标点就能自动建立坐标体系绘制曲线,但是没有动画效果。

先讲第一个LineView。

LineView的demo可以在这里下载,lineview其实只是github项目的一部分,我是将其提取出来了的,个人觉得他的其他部分没有参考价值。作者好像是个韩国人。

LineView的曲线绘制没有什么可取的部分,我想学习的是他实现动画效果的方法,设计的很好,但具体实现还需要改进,让动画更流畅。

Lineview的调用方法:

在xml中添加lineview控件

HorizontalScrollView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/horizontalScrollView"

android:layout_alignParentRight="true"

android:layout_above="@+id/line_button"

view

android:layout_width="wrap_content"

android:layout_height="200dp"

class="com.example.widget.LineView"

android:id="@+id/line_view"/

/HorizontalScrollView

在activity代码中获取lineview对象:

finalLineView lineView = (LineView)findViewById(R.id.line_view);

添加横坐标:

int randomint = 9;

ArrayListStringtest =newArrayListString();

for (int i=0;irandomint; i++){

test.add(String.valueOf(i+1));

}

lineView.setBottomTextList(test);

允许绘制坐标点:

lineView.setDrawDotLine(true);

lineView.setShowPopup(LineView.SHOW_POPUPS_NONE);

ArrayListInteger dataList = newArrayListInteger();

intrandom = (int)(Math.random()*9+1);

for (int i=0;irandomint; i++){

dataList.add((int)(Math.random()*random));

}

添加纵坐标的值:

ArrayListArrayListIntegerdataLists = newArrayListArrayListInteger();

dataLists.add(dataList);

lineView.setDataList(dataLists);

从其用法中可以看出,lineview需要提前设定横坐标的范围,而且纵坐标的值必须和lineView.setBottomTextList(test)中添加的值一一对应(读lineview源码可以知道),使用起来很不方便,我觉得作者仅仅是做出了一条曲线而已,而不太关注是否有用。和很多曲线图的开源代码一样lineview允许一次绘制几根颜色不同的曲线。

只需在上面的代码中为dataLists再添加一个list成员就行。


文章名称:android曲线图,android绘制
网页地址:http://cqcxhl.cn/article/hocgdc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP