@@ -88,6 +88,9 @@ public void setShowPopup(int popupType) {
8888 private String [] colorArray = {"#e74c3c" ,"#2980b9" ,"#1abc9c" };
8989 //popup 컬러
9090 private int [] popupColorArray = {R .drawable .popup_red ,R .drawable .popup_blue ,R .drawable .popup_green };
91+
92+ // onDraw optimisations
93+ private final Point tmpPoint = new Point ();
9194
9295 public void setDrawDotLine (Boolean drawDotLine ) {
9396 this .drawDotLine = drawDotLine ;
@@ -305,20 +308,20 @@ protected void onDraw(Canvas canvas) {
305308 int MinValue = Collections .min (dataLists .get (k ));
306309 for (Dot d : drawDotLists .get (k )){
307310 if (showPopupType == SHOW_POPUPS_All )
308- drawPopup (canvas , String .valueOf (d .data ), d .getPoint ( ),popupColorArray [k %3 ]);
311+ drawPopup (canvas , String .valueOf (d .data ), d .setupPoint ( tmpPoint ),popupColorArray [k %3 ]);
309312 else if (showPopupType == SHOW_POPUPS_MAXMIN_ONLY ){
310313 if (d .data == MaxValue )
311- drawPopup (canvas , String .valueOf (d .data ), d .getPoint ( ),popupColorArray [k %3 ]);
314+ drawPopup (canvas , String .valueOf (d .data ), d .setupPoint ( tmpPoint ),popupColorArray [k %3 ]);
312315 if (d .data == MinValue )
313- drawPopup (canvas , String .valueOf (d .data ), d .getPoint ( ),popupColorArray [k %3 ]);
316+ drawPopup (canvas , String .valueOf (d .data ), d .setupPoint ( tmpPoint ),popupColorArray [k %3 ]);
314317 }
315318 }
316319 }
317320// 선택한 dot 만 popup 이 뜨게 한다.
318321 if (showPopup && selectedDot != null ){
319322 drawPopup (canvas ,
320323 String .valueOf (selectedDot .data ),
321- selectedDot .getPoint ( ),popupColorArray [selectedDot .linenumber %3 ]);
324+ selectedDot .setupPoint ( tmpPoint ),popupColorArray [selectedDot .linenumber %3 ]);
322325 }
323326 }
324327
@@ -532,8 +535,9 @@ class Dot{
532535 setTargetData (targetX , targetY ,data ,linenumber );
533536 }
534537
535- Point getPoint (){
536- return new Point (x ,y );
538+ Point setupPoint (Point point ) {
539+ point .set (x , y );
540+ return point ;
537541 }
538542
539543 Dot setTargetData (int targetX ,int targetY ,Integer data ,int linenumber ){
0 commit comments