1)在AndroidMainfest.xml文件中添加音乐服务
<service
android:name=".MusicServer"
android:exported="false" >
<intent-filter>
<action android:name="com.angel.Android.MUSIC" />
<category android:name="android.intent.category.default" />
</intent-filter>
</service>
2)在新建一个类MusicServer 继承Service
package com.cbg.eventplaneview;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
public class MusicServer extends Service {
private MediaPlayer mediaPlayer;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mediaPlayer.stop();
}
@Override
@Deprecated
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(this, R.raw.plane);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
}
}
3)在应用中添加MusicServer
package com.cbg.eventplaneview;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
// 飞机移动的速度
int speed = 10;
<span style="color:#FF0000;">private Intent intent = new Intent("com.angel.Android.MUSIC");</span>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 去掉窗口标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 全屏显示
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 创建planeview的组件
final PlaneView planeView = new PlaneView(MainActivity.this);
setContentView(planeView);
<span style="color:#FF0000;">startService(intent);
</span>
planeView.setBackgroundResource(R.drawable.back);
// 获取窗口管理
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
// 获取屏幕的宽高
display.getMetrics(metrics);
// 设置飞机的位置
planeView.currentX = metrics.widthPixels / 2;
planeView.currentY = metrics.heightPixels - 80;
// 为draw组件键盘事件绑定监听器
planeView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
planeView.currentX = x;
planeView.currentY = y;
break;
case MotionEvent.ACTION_MOVE:
planeView.currentX = x;
planeView.currentY = y;
break;
case MotionEvent.ACTION_UP:
planeView.currentX = x;
planeView.currentY = y;
break;
}
// 通知planeview组件重绘
planeView.invalidate();
return true;
}
});
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
<span style="color:#FF0000;">stopService(intent);</span>
}
}
注意:音乐文件放在res文件下的raw文件夹内。