Android 利用seekbar结合AudioManager调节系统音量
来源:互联网 发布:2016下半年的网络综艺 编辑:程序博客网 时间:2024/04/30 14:15
花了一个上午的时间,查了许多资料和官方文档,总结了一下自己如何利用seekbar做出类似于按侧边控件弹出的音量控制。
我是利用按下喇叭按钮。然后,弹出一个Alertdialog,其中用到了setAdapter方法,见一个baseadapter加载进去。如下:
Builder builder=new AlertDialog.Builder(mcontext);
builder.setAdapter(adapter,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).create().show();
不多说了,先贴上代码:
/**
* 调整音量
*/
private void adjustVoice() {
// TODO Auto-generated method stub
Builder builder=new AlertDialog.Builder(mcontext);
BaseAdapter adapter=new BaseAdapter() {//
class Holder{
SeekBar seekbar;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//final SeekBar replaceseekbar;
LayoutInflater inflater=LayoutInflater.from(mcontext);
Holder holder=null;
if(convertView==null){
holder=new Holder();
convertView=inflater.inflate(R.layout.hsp_seekbar, null);
holder.seekbar=(SeekBar) convertView.findViewById(R.id.seekBar1);
convertView.setTag(holder);
}
else{
holder=(Holder)convertView.getTag();
}
final AudioManager audio=(AudioManager) mcontext.getSystemService(Context.AUDIO_SERVICE);
int currentvolume=audio.getStreamVolume(AudioManager.STREAM_VOICE_CALL);//get the current volume
int maxvolume=audio.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);//get the max volume
holder.seekbar.setProgress(currentvolume*100/maxvolume);//初始化音量
Log.e("VOLUME", String.valueOf(currentvolume*100/maxvolume));//必须先*100,否则会为0
holder.seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
//调整音量的核心代码处
Log.e("VOLUME1", String.valueOf(progress));//测试
Log.e("VOLUME2", String.valueOf(progress/20));//测试
audio.setStreamVolume(AudioManager.STREAM_VOICE_CALL, progress/20, 0);
seekBar.setProgress(progress);
}
});
return convertView;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return 1;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 1;
}
};
builder.setAdapter(adapter,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).create().show();
}
在下面是我的seekbar的xml:(aa去掉下面)
R.layout.hsp_seekbar.xml
点击喇叭按钮就可以出现你要的效果啦!
- Android 利用seekbar结合AudioManager调节系统音量
- Android 音量调节seekbar制作
- AudioManager类:调节系统各种音量
- Android实现简易音量调节(AudioManager)
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- Android学习:SeekBar实现音量调节
- android 开发Seekbar 调节媒体音量例子
- Android学习:SeekBar实现音量调节
- android音量条——AudioManager和SeekBar应用
- seekbar实现音量调节
- AudioManager 修改系统Android系统的音量
- Android audioManager解决MediaPlayer AudioTrack 调节音量问题
- android调节音量——AudioManager的应用
- Android通过按钮和进度条实现音量调节(AudioManager)
- Android audioManager解决MediaPlayer AudioTrack 调节音量问题
- 程序员 2014-9-25 一天的奇妙之旅
- Fitnesse使用系列六
- MKNetworkKit与AFNetworking和ASIHTTPRequest,MKNetworkKit用法与介绍
- 传说中的CSS~让我来告诉你吧~Cascading Style Sheets
- leetcode-Reverse Words in a String
- Android 利用seekbar结合AudioManager调节系统音量
- MyBatis映射文件的resultMap如何做表关联
- FOJ2166 inversion
- Ubuntu 14.04 创建无线接入点供移动设备连接上网
- C++基础之引用(常人有误区)
- 关于lua coroutine
- php删除数组指定元素
- 关于Highcharts图表组件动态修改属性的方法(API)总结之Axis
- qq 能上但是打不开网页