안드로이드 개발 질문/답변
(글 수 45,052)
public class DrawLine extends View{ Main main; Canvas canvas; public DrawLine(Context context){ super(context); }
public Canvas Draw() { main.setData(); canvas.drawColor(Color.BLACK); Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setColor(Color.WHITE); mPaint.setTextSize(10); canvas.drawText(main.contactName[0], 0, 50, mPaint); mPaint.setColor(Color.GREEN); mPaint.setStrokeWidth(10); canvas.drawLine(35,48,main.comparedString[0]*50,48,mPaint); return canvas; } public void onDraw(Canvas Canvas) { } } //메인 클래스 부분입니다. public class Main extends Activity { Cursor contactCursor; Cursor callLogCursor; String[] contactName; String[] callLogName; int[] comparedString; int legthContact; int legthCallLog; Button button; DrawLine line; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setData(); Canvas canvas = line.Draw(); line.onDraw(canvas); setContentView(line); //DrawLine line = new DrawLine(this); Log.d("A","OK"); //line.onDraw(canvas,contactName, comparedString); //setContentView(line); Log.d("A","OK"); for(int i = 0; i < contactName.length; i++) { Log.d("name", "contactName["+i+"]"+ contactName[i]); } for(int i = 0; i < callLogName.length; i++) { Log.d("name", "callLogName["+i+"]"+ callLogName[i]); } for(int i = 0; i < comparedString.length; i++) { Log.d("name", "comparedString["+i+"]"+ comparedString[i]); } } protected void setData() { contactCursor = getContactData(); callLogCursor = getCallLog(); contactName = getContactName(contactCursor); callLogName = getCallLogName(callLogCursor); comparedString = compareString(contactName, callLogName); }
제가 질문 드리는것은 전화 목록을 불러와서 최근 통화목록과 비교한후에 그래프로 표시하는 것을
Canvas 를 이용하여서 그리려고 합니다.
궁금한게 있는데 onCreate에서는 Canvas를 이용하여 그릴수가 없는지 그리고 데이터를 받아와서 변경 하고 싶은데 어떻게 해야될지
조언을 부탁드림니다.
소스는 밑에 보시는대로 있습니다.