1.背景音乐在menu中设置:
menu.xml
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.echo.sb.MainActivity" >
android:id="@+id/action_settings"
android:title="设置音乐开关"/>
2.使用到sharedPreference:在res中的xml目录下
preference.xml
android:key="music"
android:title="播放背景音乐"
android:summary="play or stop"
android:defaultValue="true"
/>
3.存放音乐在指定的文件夹下:res中的raw目录下
4.需要一个音乐播放的实体类,控制音乐的播放:
Music.java
public class Music {
private static MediaPlayer m;
public static void play(Context context,int resource){
stop(context);
if(Preference.getmusic(context)){
m=MediaPlayer.create(context, resource);
m.setLooping(true);
m.start();
}
}
public static void stop(Context context){
if(m!=null&&m.isPlaying()){
m.stop();
m.release();
m=null;
}
}
}
5.对sharedPreference中的设置进行设置:
Preference.java
public class Preference extends PreferenceActivity {
private static final String OPEN_MUSIC="music";
private static final boolean DEFAULT_MUSIC=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference);
}
public static boolean getmusic(Context context){
return PreferenceManager.getDefaultSharedPreferences(context).
getBoolean(OPEN_MUSIC, DEFAULT_MUSIC);
}
}
6.最后一步,在MainActivity中实现背景音乐的播放:
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.action_settings:
Intent intent=new Intent(MainActivity.this, Preference.class);
startActivity(intent);
break;
default:
break;
}
return true;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Music.stop(this);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Music.play(MainActivity.this, R.raw.test);
}
}
这样一个项目的背景音乐就设置好了~~~