设为首页 加入收藏

TOP

andoid 自定义view 画折线图(三)
2017-10-13 10:13:13 】 浏览:9261
Tags:andoid 定义 view 线图
rice()),p.x
-(getDefaultTipSizeWidth()/2),p.y-UIUtil.dp2pxInt(context_,8),mpaint); // 8 是又圆心到上面的距离 5+3 } } public void drawCanvasBg( Canvas canvas){ mpaint.setStyle(Paint.Style.FILL); mpaint.setColor(Color.argb(0x44, 0xff, 0x66, 0x00)); Path path= new Path(); for (int i = 0; i < pointFs.size(); i++) { PointF p = pointFs.get(i); path.lineTo(p.x,p.y); if (i==pointFs.size()-1){ path.lineTo(p.x,heigth*3/4); path.lineTo(pointFs.get(0).x,heigth*3/4); path.lineTo(pointFs.get(0).x,pointFs.get(0).y); } } canvas.drawPath(path,mpaint); } public void drawCanvasButtom( Canvas canvas){ mpaint.setStyle(Paint.Style.FILL); mpaint.setColor(Color.BLACK); mpaint.setTextSize(pricetipsize); mpaint.setStrokeWidth(3); for (int i = 0; i <= pointFs.size(); i++) { int buttomwidth = width/pointFs.size(); mpaint.setColor(getResources().getColor(R.color.line)); canvas.drawLine(buttomwidth*i,heigth*3/4,buttomwidth*i,heigth*3/4+getDefaultScale()*UIUtil.dp2pxFloat(context_,10),mpaint); mpaint.setColor(getResources().getColor(R.color.text2)); if (i==pointFs.size()){ return; } canvas.drawText(prices.get(i).getYear(),buttomwidth*i+(buttomwidth-getDefaultScale()*UIUtil.dp2pxInt(context_,38))/2 ,heigth*3/4+pricetipsize+UIUtil.dp2pxInt(context_,10)*getDefaultScale(),mpaint); } } public float getDeviationPrice() { // 获取最大与最小值直接的差值 float max = 0; for (ItemInfo info : prices) { if (info.price >= max) { max = info.price; } } return max - getMinPrice(); } public float getMinPrice() { // 获取最大与最小值直接的差值 float min = Integer.MAX_VALUE; for (ItemInfo info : prices) { if (info.price<=min){ min=info.price; } } return min; } public PointF getStartPostion(int postion , float price){ PointF p = new PointF(); int contentheight = heigth*1/4 -(pricetipsize+UIUtil.dp2pxInt(context_, 10)); p.y = contentheight-(price-getMinPrice())*contentheight/getDeviationPrice()+(pricetipsize+UIUtil.dp2pxInt(context_, 10)); // 这个10dp 是默认留白 p.x = width/prices.size()*postion+width/(2*prices.size()); return p; } public int getDefaultTipSize(){ return (int)(getDefaultScale()*UIUtil.dp2pxInt(context_,15)); } public int getDefaultTipSizeWidth(){ //30 是在prd 上面的标注默认值 return (int)(getDefaultScale()*UIUtil.dp2pxInt(context_,30)); } public int getDefaultButtomHeight(){ //30 是在prd 上面的标注默认值 return (int)(getDefaultScale()*UIUtil.dp2pxInt(context_,10)); //底部10dip } public float getDefaultScale(){ return (heigth*3/4)/ (float)UIUtil.dp2pxInt(context_, DEFAULTWIDTH); } public static class ItemInfo{ private float price; private String year; public ItemInfo(float price, String year) { this.price = price; this.year = year; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } } }

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇android 官方DrawerLayout的介绍.. 下一篇Andoid内存泄露

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目