代码如下:
private final class AlarmSeekBarChangeListener implements OnSeekBarChangeListener{
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
switch(seekBar.getId()){
case R.id.hours_sb:
hoursProgress.setText(String.valueOf(progress));
break;
case R.id.minutes_sb:
minutesProgress.setText(String.valueOf(progress));
break;
case R.id.volume_sb:
//上面的不用理,主要看下面的
//得到系统默认闹铃的Uri
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
//根据Uri得到一个Ringtone对象
Ringtone ring = RingtoneManager.getRingtone(AlarmSettingActivity.this, alert);
//设置闹铃的属性,这里设置为闹钟,决定响铃的时候是根据那个类型的声音来响
ring.setStreamType(AudioManager.STREAM_ALARM);
//每当拖动条改变的时候,将闹钟铃声设为改动后的值
aManager.setStreamVolume(AudioManager.STREAM_ALARM, progress, 0);
//播放闹铃
ring.play();
break;
}
}
补充一下,在拖动seekbar前 应该设置一个变量保存 拖动前原系统音量的值,当取消操作时,再把值还原回去。