case R.id.btnYinLiangPlus://音量加
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); // 调高声音
Log.e("HUXI", "----listener----YinLiang---YES");
break;
case R.id.btnYinLiangMoins://音量减
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);// 调低声音
Log.e("HUXI", "----listener----YinLiang---NO");
break;
我是在onClick中做的操作,所以点一下就会就会刷新调用系统的音量条,点一下闪一下,但是我要的不是这样的,我要的是那种就像手机的上下键调节音量大小一样,连续点或者在几秒之内点是不闪的,求教各位大神,帮忙解决一下!!!!
Android两个ImageView的调节音量高低
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- 徐福记456 2016-10-28 05:21关注
你可以自定义进度条, AudioManager.FLAG_SHOW_UI换成其他类型。
xml布局如下:
<?xml version="1.0" encoding="utf-8"?>
android:id="@+id/activity_volume"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
android:gravity="center"><Button android:id="@+id/up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增大"/> <Button android:id="@+id/down" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="减小"/> <ProgressBar android:id="@+id/progress" android:layout_width="150dp" android:layout_height="wrap_content" android:layout_marginTop="@dimen/size_20dp" style="?android:attr/progressBarStyleHorizontal" />
manifest.xml权限:
activity:
public class VolumeActivity extends Activity implements View.OnClickListener {private Button down;
private Button up;private ProgressBar progressBar;
private int maxVolume; // 最大音量值
private int curVolume; // 当前音量值
private int stepVolume; // 每次调整的音量幅度private AudioManager audioManager; // 音频管理器
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_volume);initView(); initData(); } private void initView() { down = (Button) findViewById(R.id.down); up = (Button) findViewById(R.id.up); down.setOnClickListener(this); up.setOnClickListener(this); progressBar = (ProgressBar) findViewById(R.id.progress); } private void initData(){ audioManager = (AudioManager)getApplicationContext().getSystemService(Service.AUDIO_SERVICE); // 获取最大音乐音量 maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); // 初始化音量大概为最大音量的1/2 curVolume = maxVolume / 2; // 每次调整的音量大概为最大音量的1/10 stepVolume = maxVolume / 10; //设置进度条 progressBar.setMax(maxVolume); progressBar.setProgress(curVolume); } /** * 调整音量 */ private void adjustVolume() { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, curVolume, AudioManager.FLAG_VIBRATE); } @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.up://按下增大音量按钮 curVolume += stepVolume; if (curVolume >= maxVolume) { curVolume = maxVolume; } progressBar.setProgress(curVolume); break; case R.id.down://按下减小音量按钮 curVolume -= stepVolume; if (curVolume <= 0) { curVolume = 0; } progressBar.setProgress(curVolume); break; default: break; } // 调整音量 adjustVolume(); }
}
解决 无用评论 打赏 举报
悬赏问题
- ¥15 Windows server update services
- ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
- ¥15 模糊pid与pid仿真结果几乎一样
- ¥15 java的GUI的运用
- ¥15 Web.config连不上数据库
- ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
- ¥15 怎么配置广告联盟瀑布流
- ¥15 Rstudio 保存代码闪退
- ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
- ¥50 invest生境质量模块