Android 使用SeekBar调节系统音量
以下是一个使用SeekBar来调节系统音量的实例:
1、XML:
<SeekBar
android:id="@+id/sound"
android:layout_width="150px"
android:layout_height="10px"
android:max="100"
//设置拖动条最大值
android:progress="10"
//设置拖动条当前值
android:progressDrawable="@layout/seekbar_style"
//拖动条样式
android:thumb="@layout/thumb"
/> //滑块样式
2、seekbar_style.xml:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background">
<shape>
<corners android:radius="10dip" />
<gradient android:startColor="#ffffffff"
android:centerColor="#ff000000" android:endColor="#ff808A87"
android:centerY="1" android:angle="270" />
</shape>
</item>
<item
android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="10dip" />
<gradient android:startColor="#ffffffff"
android:centerColor="#ffFFFF00" android:endColor="#ffAABD00"
android:centerY="1" android:angle="270" />
</shape>
</clip>
</item>
</layer-list>
3、thumb.xml:
<?xml
version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下状态 -->
<item
android:state_pressed="true"
android:drawable="@drawable/thumb_normal"
/>
<!-- 普通无焦点状态 -->
<item
android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/thumb_normal"
/>
</selector>
4、bacon_seekbar.xml:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+android:id/background"
android:drawable="@drawable/thumb_normal"
/>
<item
android:id="@+android:id/SecondaryProgress"
android:drawable="@drawable/thumb_normal"
/>
<item
android:id="@+android:id/progress"
android:drawable="@drawable/thumb_normal"
/>
</layer-list>
5、JAVA代码:
public class
PianoActivity extends Activity {
/** Called when the
activity is first created. */
private ImageButton
imageButton_white1;
private MediaPlayer
mediaPlayer01;
public AudioManager audiomanage;
private
TextView mVolume ; //显示当前音量
public SeekBar
soundBar;
private int maxVolume, currentVolume;
private int volume=0; //初始化声音
@Override
public void
onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mediaPlayer01 = new
MediaPlayer();
imageButton_white1=(ImageButton)findViewById(R.id.white1);
final SeekBar soundBar=(SeekBar)findViewById(R.id.sound);
//音量设置
mVolume =
(TextView)findViewById(R.id.mVolume);
audiomanage =
(AudioManager)getSystemService(Context.AUDIO_SERVICE);
maxVolume =
audiomanage.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//获取系统最大音量
soundBar.setMax(maxVolume);
//拖动条最高值与系统最大声匹配
currentVolume =
audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC);
//获取当前值
soundBar.setProgress(currentVolume);
mVolume.setText(currentVolume*100/maxVolume + " %");
soundBar.setOnSeekBarChangeListener(new
OnSeekBarChangeListener(){////调音监听器
public
void onProgressChanged(SeekBar arg0,int progress,boolean
fromUser){
audiomanage.setStreamVolume(AudioManager.STREAM_MUSIC,
progress,
0);
currentVolume
= audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC);
//获取当前值
soundBar.setProgress(currentVolume);
mVolume.setText(currentVolume*100/maxVolume + "
%");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar)
{
// TODO Auto-generated
method
stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar)
{
// TODO Auto-generated method
stub
}
});
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。