android折线图,移动折线图

Android MPAndroidChart 折线图设置哪些属性?

在org.achartengine.renderer这个包里有一个类BasicStroke,可以改变线型(实线、虚线、点线),而折线图中用的是XYMultipleSeriesRenderer这个类,它继承自DefaultRenderer,这个与BasicStroke是一个包里的子类,DefaultRenderer有一个方法是setShowGridY(boolean showGrid),感觉在这个方法里肯定有设置线型的语句,但是我现在没找到AChartEngine的具体五毛源码,不知道这个方法具体是怎样的,只能提供给你一个思路……我几个月前也捣鼓过AChartEngine

创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元高安做网站,已为上家服务,为高安各地企业和个人服务,联系电话:18982081108

Android怎么做数据折线图

这个可以用安卓自定义view里的ondraw()方法来实现,通过获取的坐标,画图连接起来即可

下面的例子是一个画矩形 的代码,你可以试着改成画曲线

public class AndroidTest extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

MyView mv = new MyView(this);

setContentView(mv);

}

public class MyView extends View {

MyView(Context context) {

super(context);

}

@Override

protected void onDraw(Canvas canvas) {

// TODO Auto-generated method stub

super.onDraw(canvas);

// 首先定义一个paint

Paint paint = new Paint();

// 绘制矩形区域-实心矩形

// 设置颜色

paint.setColor(Color.BLUE);

// 设置样式-填充

paint.setStyle(Style.FILL);

// 绘制一个矩形

canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);

// 绘空心矩形

// 设置颜色

paint.setColor(Color.RED);

// 设置样式-空心矩形

paint.setStyle(Style.STROKE);

// 绘制一个矩形

canvas.drawRect(new Rect(10, 10, 100, 30), paint);

// 绘文字

// 设置颜色

paint.setColor(Color.GREEN);

// 绘文字

canvas.drawText("Hello", 10, 50, paint);

// 绘图

// 从资源文件中生成位图

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

// 绘图

canvas.drawBitmap(bitmap, 10, 60, paint);

}

}

}

关于android软件编程中如何画函数折线图的问题

用Canvas的drawLine方法就可以了canvas.drawLine(startX, startY, stopX, stopY, paint);

startX, startY为起始坐标;

stopX, stopY为终点坐标;

paint就是一个Paint对象;

比如你的横坐标的第一个坐标是(1, 2), 第二个坐标是(2, 5), 第三个坐标是(3, 10),那么这段折线可以这样画:

canvas.drawLine(1,2,2,5,paint);

canvas.drawLine(2,5,3,10,paint);

以此类推,剩下的3段折线都可以这样画出来

android中数据的折线图怎么实现

推荐你几个相关开源项目,可以根据需要自己选择,自己画还是比较麻烦的:MPAndroidChart强大的图表绘制工具,支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、网状图及各种图的结合;支持图的拖拽缩放;支持Android2.2以上,支持横纵轴缩放,多指缩放,展现动画、高亮、保存到sdcard、从文件读取图表achartengine强大的图表绘制工具,支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、拨号图/表、立方线图及各种图的结合GraphView绘制图表和曲线图的View,可用于Android上的曲形图、柱状图、波浪图展示HoloGraphLibrary绘制线状图、柱状图、饼状图XCL-ChartsXCL-Charts基于原生的Canvas来绘制各种图表,在设计时,尽量在保证开发效率的同时,给使用者提供足够多的定制化能力。因此使用简便,同时具有相当灵活的定制能力。目前支持3D/非3D柱形图(BarChart)、3D/非3D饼图(PieChart)、堆积图(StackedBarChart)、面积图(AreaChart)、折线图(LineChart)、曲线图(SplineChart)、环形图(DountChart)、南丁格尔玫瑰图(RoseChart)、仪表盘(DialChart)、刻度盘(GaugeChart)、雷达图(RadarChart)、圆形图(CircleChart)等图表。其它特性还包括支持图表缩放、手势移动、动画显示效果、高密度柱形显示、图表分界定制线、多图表的混合显示及同数据源不同类型图表切换等。EazeGraphAndroid图表库,支持柱状图、分层柱状图、饼状图、线性图WilliamChart绘制图表的库,支持LineChartView、BarChartView和StackBarChartView三中图表类型,并且支持Android2.2及以上的系统。HelloChartsforAndroid支持折线图、柱状图、饼图、气泡图、组合图;支持预览、放大缩小,滚动,部分图表支持动画;支持Android2.2以上这些项目都可以在GitHub搜索到。

android折线图

package com.example.testcanvasdraw;                                                                 import java.util.ArrayList; import java.util.List; import java.util.Random;                                                                 import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.View;                                                                 public class MyView extends View{     private int XPoint = 60;     private int YPoint = 260;     private int XScale = 8;  //刻度长度     private int YScale = 40;     private int XLength = 380;     private int YLength = 240;                                                                         private int MaxDataSize = XLength / XScale;                                                                         private ListInteger data = new ArrayListInteger();                                                                                                                                                                                                             private String[] YLabel = new String[YLength / YScale];                                                                         private Handler handler = new Handler(){         public void handleMessage(Message msg) {             if(msg.what == 0x1234){                 MyView.this.invalidate();             }         };     };     public MyView(Context context, AttributeSet attrs) {         super(context, attrs);         for(int i=0; iYLabel.length; i++){             YLabel[i] = (i + 1) + "M/s";         }                                                                                 new Thread(new Runnable() {                                                                                         @Override             public void run() {                 while(true){                     try {                         Thread.sleep(1000);                     } catch (InterruptedException e) {                         e.printStackTrace();                     }                     if(data.size() = MaxDataSize){                         data.remove(0);                     }                     data.add(new Random().nextInt(4) + 1);                     handler.sendEmptyMessage(0x1234);                 }             }         }).start();     }                                                                         @Override     protected void onDraw(Canvas canvas) {         super.onDraw(canvas);         Paint paint = new Paint();         paint.setStyle(Paint.Style.STROKE);         paint.setAntiAlias(true); //去锯齿         paint.setColor(Color.BLUE);                                                                                 //画Y轴         canvas.drawLine(XPoint, YPoint - YLength, XPoint, YPoint, paint);                                                                                 //Y轴箭头         canvas.drawLine(XPoint, YPoint - YLength, XPoint - 3, YPoint-YLength + 6, paint);  //箭头         canvas.drawLine(XPoint, YPoint - YLength, XPoint + 3, YPoint-YLength + 6 ,paint);                                                                                 //添加刻度和文字         for(int i=0; i * YScale  YLength; i++) {             canvas.drawLine(XPoint, YPoint - i * YScale, XPoint + 5, YPoint - i * YScale, paint);  //刻度                                                                                         canvas.drawText(YLabel[i], XPoint - 50, YPoint - i * YScale, paint);//文字         }                                                                                 //画X轴         canvas.drawLine(XPoint, YPoint, XPoint + XLength, YPoint, paint);         System.out.println("Data.size = " + data.size());         if(data.size()  1){             for(int i=1; idata.size(); i++){                 canvas.drawLine(XPoint + (i-1) * XScale, YPoint - data.get(i-1) * YScale,                          XPoint + i * XScale, YPoint - data.get(i) * YScale, paint);             }         }     } }

上面绘制折线部分我们还有一种方式同样可以实现:

if(data.size()  1){     Path path = new Path();     path.moveTo(XPoint, YPoint - data.get(0) * YScale);     for(int i=1; idata.size(); i++){         path.lineTo(XPoint + i * XScale, YPoint - data.get(i) * YScale);     }     canvas.drawPath(path, paint); }

android怎么让折线图上方显示数字

直接在旁边写数字就可以了。主要画折线图。

步骤一:折线图的坐标集

首先应该创建 XYSeries对象 : 用于提供绘制的点集合的数据

XYSeries series = new XYSeries(titles[i]); // 根据每条线的名称创建

将所有的坐标加入这个集合

series .add (xV[k], yV[k]);

XYMultipleSeriesDataset对象 用于 保存点集数据 ,包括每条曲线的X,Y坐标

// 用于数据的存放

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

dataset .addSeries (series);

步骤二:折线图的样式集

定义每条曲线的颜色

int [] colors = new int [] {Color. BLUE ,Color. GREEN };

定义每条曲线的点的形状

PointStyle [] styles =

new PointStyle []{ PointStyle . CIRCLE , PointStyle . DIAMOND };

曲线图的格式,包括颜色,值的范围,点和线的形状等等 都封装在 XYSeriesRender对象中,再将XYSeriesRender对象封装在 XYMultipleSeriesRenderer 对象中

XYSeriesRenderer r = new XYSeriesRenderer();

r.setColor(colors[i]);

r.setPointStyle(styles[i]);

r.setFillPoints(fill);

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

renderer.addSeriesRenderer(r);

设置折线图名称,坐标轴的名称,坐标轴的起点重点,坐标轴的颜色,坐标轴上数字的颜色

setChartSettings(renderer, "Line Chart Demo" , "X" , "Y" , - 1 , 12, 0, 35 , Color. WHITE , Color. WHITE );

步骤三:显示折线图

View chart = ChartFactory. getLineChartView ( this , dataset, renderer);

setContentView(chart);


本文标题:android折线图,移动折线图
标题URL:http://pwwzsj.com/article/dsdhicc.html