Programming/Android
Andoid 매트로돔
TanSanC
2013. 8. 19. 17:21
package com.tistory.tansanc.Test130805; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.media.AudioManager; import android.media.SoundPool; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); mDdok = mPool.load(this, R.raw.ddok, 1); MyView mv = new MyView(this, mHandler); setContentView(mv); } Handler mHandler = new Handler() { public void handleMessage(Message msg) { mPool.play(mDdok, 1, 1, 0, 0, 1); } }; SoundPool mPool; int mDdok; class MyView extends View { Context context; Handler mDdokHandler; public MyView(Context context, Handler mDdokHandler) { super(context); this.context = context; this.mDdokHandler = mDdokHandler; mHandler.sendEmptyMessage(0); } float degree = 0; float inc = 1; @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub Paint Pnt = new Paint(); Pnt.setAntiAlias(true); Pnt.setColor(Color.RED); Pnt.setStrokeWidth(20); canvas.translate(canvas.getWidth() / 2, canvas.getHeight() / 4 * 3); if (degree > 45) { inc = -1; mDdokHandler.sendEmptyMessage(0); } else if (degree < -45) { inc = 1; mDdokHandler.sendEmptyMessage(0); } canvas.rotate(degree); canvas.drawLine(0, 0, 0, -canvas.getHeight() / 2, Pnt); super.onDraw(canvas); } Handler mHandler = new Handler() { public void handleMessage(Message msg) { degree = degree + inc; invalidate(); mHandler.sendEmptyMessageDelayed(0, 50); } }; } }