Android学习:SeekBar实现音量调节
来源:互联网 发布:ppp项目数据库 编辑:程序博客网 时间:2024/05/21 14:45
SeekBar可以通过滑块的位置来标识数值----而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等。
SeekBar允许用户改变拖动条的滑块外观,改变滑块外观通常通过如下属性来指定: android:thumb: 指定一个Drawable对象,该对象将自定义滑块。
为了让程序能响应拖动条滑块位置的改变,程序可以考虑为它绑定一个OnSeekBarChangeListener监听器。
以下是一个使用SeekBar来调节系统音量的实例:
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" /> //滑块样式
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>
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>
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>
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 + " %"); } @Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub} });
TextView的XML没有给出,需要自己添加。
完成效果:
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- (转)Android学习:SeekBar实现音量调节
- seekbar实现音量调节
- Android 音量调节seekbar制作
- SeekBar实现音量调节 仿天天动听
- SeekBar------实现调节音量的控件
- SeekBar------实现调节音量的控件
- android 开发Seekbar 调节媒体音量例子
- android 实现音量调节
- 如何实现Android音量seekbar
- Android音量调节的实现
- Android 利用seekbar结合AudioManager调节系统音量
- 闹钟音量调节 进度条 SeekBar
- 经典好书
- 获取元素的左边 x 高度 y的值
- Win7系统文件共享设置
- http和https区别
- JSR-303规范,Bean Validation
- Android学习:SeekBar实现音量调节
- 数据接收中粘包及半包的处理
- 本地数据存储----SharedPreferences
- ios5.0不完美越狱
- 弹出窗口—jQuery UI Dialog和artDialog
- Windows下SVN服务器架设和管理
- php分页
- x200无法连接到无线网络
- ContentProvider实现获取通讯录所有联系人