一、動態標示的方法:
使用 MarkerView 類別來畫出形狀或標示。
在 onDraw 加入
Paint p=new Paint(); p.setAntiAlias(true); p.setColor(Color.parseColor("#FFFFFF")); RectF rf=new RectF(0,0,200,100); canvas.drawRoundRect(rf,15,15,p);
二、最高最低的方法:
使用 LineChartRenderer 類別來畫形狀或標示。
先計算出最高最低點再畫出形狀。
1. LineChartRenderer類別的drawValue加入以下內容:
Transformer trans=mChart.getTransformer(dataSet.getAxisDependency()); MPPointD pointD_highest=trans.getPixelForValues(highest_x,highest_y); MPPointD pointD_lowest=trans.getPixelForValues(lowest_x,lowest_y); point(c,pointD_highest.x,pointD_highest.y,"最高"); point(c,pointD_lowest.x,pointD_lowest.y,"最低");
2. 畫出形狀標示:
private void point(Canvas c,double x,double y,String text0) { float width=mChart.getWidth(); float hight=mChart.getHeight(); if(width<x+100){ x=x-(x+100-width); } if(hight<y+50){ y=y-(y+50-hight); } Paint p =new Paint(); p.setAntiAlias(true); p.setColor(Color.parseColor("#FFFFFF")); RectF rf=new RectF((float) x,(float)y,(float)x+100,(float)y+60); c.drawRoundRect(rf,15,15,p); Paint p0=new Paint(); p0.setAntiAlias(true); p0.setColor(Color.RED); p0.setTextSize(36); c.drawText(text0,(float)x,(float)y+50,p0); }
三、平均值畫直線的方法:
float sum=0; for(int i=0;i<set1.getEntryCount();i++){ sum=sum+set1.getEntryForIndex(i).getY(); } float navg=sum/set1.getEntryCount(); LimitLine avgLine=new LimitLine(navg,navg+"平值值"); avgLine.setTextSize(16); avgLine.enableDashedLine(6,4,4); avgLine.disableDashedLine(); avgLine.setLineColor(Color.parseColor("#33CC33")); avgLine.setTextColor(Color.RED); lineChart.getAxisLeft().addLimitLine(avgLine);
影片教學:
沒有留言:
張貼留言
影片的問題請留在影片的留言區裡。
部落格不會另外通知給我,所以很難發現你有留言。