안드로이드 개발 질문/답변
(글 수 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를 이용하여 그릴수가 없는지 그리고 데이터를 받아와서 변경 하고 싶은데 어떻게 해야될지
조언을 부탁드림니다.
소스는 밑에 보시는대로 있습니다.



