android中利用Canvas绘制折线图

上传人:枫** 文档编号:548409028 上传时间:2022-09-04 格式:DOC 页数:9 大小:172.50KB
返回 下载 相关 举报
android中利用Canvas绘制折线图_第1页
第1页 / 共9页
android中利用Canvas绘制折线图_第2页
第2页 / 共9页
android中利用Canvas绘制折线图_第3页
第3页 / 共9页
android中利用Canvas绘制折线图_第4页
第4页 / 共9页
android中利用Canvas绘制折线图_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《android中利用Canvas绘制折线图》由会员分享,可在线阅读,更多相关《android中利用Canvas绘制折线图(9页珍藏版)》请在金锄头文库上搜索。

1、android中利用Canvas绘制折线图2013-12-28 11:46:56|分类:android|举报|字号订阅运行的效果图:1.我们都知道要想显示一个我们自己定义的View有两种方法:a.直接new 一个我们的View对象,并且setContentView(MyView);假如我们自己定义的对象叫myview,我们可以在java中使用下面的代码实现:MyView myView = new MyView(this);setContentView(myView);b.第二种方法是把它放到我们的布局文件中,例如:其中的com.example是我们程序的包名。用这种方法必须在我们自定义的Vie

2、w类中也就是MyView中加上构造方法:public MyView(Context context, AttributeSet attributeSet)super(context, attributeSet);下面看代码:MainActivity.javapackage com.example;import com.example.chartest.R;import android.app.Activity;import android.os.Bundle;/* * 显示图标界面 * author ycl * */public class MainActivity extends Activ

3、ity /* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ChartView myView = (ChartView) this.findViewById(R.id.myView);System.out.println(1);myView.SetInfo(new String 7-11, 7-

4、12, 7-13, 7-14, 7-15,7-16, 7-17 , / X轴刻度new String , 50, 100, 150, 200, 250 , / Y轴刻度new int 15, 23, 10, 36, 45, 40, 12 , / 数据图标的标题);activity_main.xmlChartView.javapackage com.example;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.P

5、aint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.widget.Scroller;/* * 图标 * author ycl * */public class ChartView extends View public int XPoint = 40; / 原点的X坐标public int YPoint = 460; / 原点的Y坐标public int XScale = 55; / X的刻度长度public int YScal

6、e = 60; / Y的刻度长度public int XLength = 380; / X轴的长度public int YLength = 360; / Y轴的长度public String XLabel; / X的刻度public String YLabel; / Y的刻度public int Data; / 数据public String Title; / 显示的标题private float screenW, screenH;private float lastX;private float lastY;private Scroller scroller;private float to

7、tal_Width = 0;public ChartView(Context context, AttributeSet attr) super(context, attr);scroller=new Scroller(context);screenW = this.getWidth();screenH = this.getHeight();public void SetInfo(String XLabels, String YLabels, int AllData,String strTitle) XLabel = XLabels;YLabel = YLabels;Data = AllDat

8、a;Title = strTitle;Overrideprotected void onDraw(Canvas canvas) super.onDraw(canvas);/ 重写onDraw方法System.out.println(3);/ canvas.drawColor(Color.WHITE);/设置背景颜色Paint paint = new Paint();paint.setStyle(Paint.Style.STROKE);paint.setAntiAlias(true);/ 去锯齿paint.setColor(Color.BLACK);/ 颜色Paint paint1 = new

9、Paint();paint1.setStyle(Paint.Style.STROKE);paint1.setAntiAlias(true);/ 去锯齿paint1.setColor(Color.DKGRAY);paint.setTextSize(12); / 设置轴文字大小/ 设置Y轴(对于系统来讲屏幕的原点在左上角)canvas.drawLine(XPoint, YPoint - YLength, XPoint, YPoint, paint); / 轴线for (int i = 0; i * YScale YLength; i+) canvas.drawLine(XPoint, YPoint

10、 - i * YScale, XPoint + 5, YPoint - i* YScale, paint); / 刻度 XPoint+5画出了一条短的小横线try canvas.drawText(YLabeli, XPoint - 22,YPoint - i * YScale + 5, paint); / 文字 catch (Exception e) canvas.drawLine(XPoint, YPoint - YLength, XPoint - 3, YPoint - YLength+ 6, paint); / 箭头canvas.drawLine(XPoint, YPoint - YLe

11、ngth, XPoint + 3, YPoint - YLength+ 6, paint);/ 设置X轴canvas.drawLine(XPoint, YPoint, XPoint + XLength, YPoint, paint); / 轴线for (int i = 0; i * XScale 0 & YCoord(Datai - 1) != -999& YCoord(Datai) != -999) / 保证有效数据canvas.drawLine(XPoint + (i - 1) * XScale,YCoord(Datai - 1), XPoint + i * XScale,YCoord(D

12、atai), paint);canvas.drawCircle(XPoint + i * XScale, YCoord(Datai), 2,paint); catch (Exception e) canvas.drawLine(XPoint + XLength, YPoint, XPoint + XLength - 6,YPoint - 3, paint); / 箭头canvas.drawLine(XPoint + XLength, YPoint, XPoint + XLength - 6,YPoint + 3, paint); paint.setTextSize(16);canvas.drawText(Title, 150,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号