setContentView(new ClockView(this) ) ;//R.layout.main); } protected class ClockView extends View { Canvas mCanvas; private Bitmap mClock; private Bitmap mPin[] = new Bitmap[3]; public ClockView(Context context) { super(context); // TODO Auto-generated constructor stub mHandler.sendEmptyMessageDelayed(0, 1000); } Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub //super.handleMessage(msg); drawClock(mCanvas); invalidate(); mHandler.sendEmptyMessageDelayed(0, 1000); } }; @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub //super.onDraw(canvas); mCanvas = canvas; mClock = BitmapFactory.decodeResource(this.getResources(), R.drawable.dial); mPin[0] = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin_1); mPin[1] = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin_2); mPin[2] = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin_3); drawClock(canvas); } private void drawClock(Canvas canvas) { // TODO Auto-generated method stub GregorianCalendar mCalendar = new GregorianCalendar(); int hour = mCalendar.get(Calendar.HOUR); int min = mCalendar.get(Calendar.MINUTE); int sec = mCalendar.get(Calendar.SECOND); float rSec = sec *6 ; // 360도 / 60초 = 6도/초 float rMin = min*6 + rSec/60; // float rHour = hour * 30 + rMin /12 ; int w = mClock.getWidth()/2; // 반폭 int h = mClock.getHeight()/2; int w1=mPin[0].getWidth()/2; int h1=mPin[0].getHeight()-15; int cx = getWidth()/2; int cy = getHeight()/2; //canvas.drawBitmap(mClock, left, top, paint); canvas.drawBitmap(mClock, cx-w, cy-h, null); canvas.rotate(rHour,cx,cy); canvas.drawBitmap(mPin[2],cx-w1,cy-h1,null); //시침 맨아래 canvas.rotate(rMin-rHour,cx,cy); canvas.drawBitmap(mPin[1],cx-w1,cy-h1,null); canvas.rotate(rSec-rMin,cx,cy); canvas.drawBitmap(mPin[0],cx-w1,cy-h1,null); //초침 맨위에 canvas.rotate(-rSec,cx,cy); /* Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setTextSize(30); canvas.rotate(-rSec,cx,cy); canvas.drawText(String.format("%2d:%2d:%d",hour,min,sec), cx-70, cy+w+50, paint); */ }
..
'0.일반개발' 카테고리의 다른 글
JNI ffmpeg (0) | 2010.09.28 |
---|---|
삼각함수 trigonometric function 기초 (0) | 2010.09.28 |
버튼 이미지 / 둥근 버튼 (0) | 2010.09.27 |
Matching game in javasacript (0) | 2010.09.27 |
KT alert over iPhone 4 complaints `아이폰4 수신불량’..KT `리콜 가능성 없다’ (0) | 2010.09.26 |