首先,让我们来看下本程序的实现截图:

图中的五个ImageButton实现不同的功能:
1.调大音量
2.减小音量
3.调整手机模式为正常
4.调整手机模式为静音
5.调整手机模式为震动
下面给出实现的代码:
public class EX07_08 extends Activity {
/* 变量宣告 */
private ImageView myImage;
private ImageButton downButton;
private ImageButton upButton;
private ImageButton normalButton;
private ImageButton muteButton;
private ImageButton vibrateButton;
private ProgressBar myProgress;
private AudioManager audioMa;
private int volume=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 物件初始化 */
audioMa = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
myImage = (ImageView)findViewById(R.id.myImage);
myProgress = (ProgressBar)findViewById(R.id.myProgress);
downButton = (ImageButton)findViewById(R.id.downButton);
upButton = (ImageButton)findViewById(R.id.upButton);
normalButton = (ImageButton)findViewById(R.id.normalButton);
muteButton = (ImageButton)findViewById(R.id.muteButton);
vibrateButton = (ImageButton)findViewById(R.id.vibrateButton);
/* 设定初始的手机音量 */
volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
myProgress.setProgress(volume);
/* 设定初始的声音模式 */
int mode=audioMa.getRingerMode();
if(mode==AudioManager.RINGER_MODE_NORMAL) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal));
}
else if(mode==AudioManager.RINGER_MODE_SILENT) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute));
}
else if(mode==AudioManager.RINGER_MODE_VIBRATE) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate));
}
/* 音量调小声的Button */
downButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
/* 设定音量调小声一格 */
audioMa.adjustVolume(AudioManager.ADJUST_LOWER, 0);
volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
myProgress.setProgress(volume);
/* 设定调整后声音模式 */
int mode=audioMa.getRingerMode();
if(mode==AudioManager.RINGER_MODE_NORMAL) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal));
}
else if(mode==AudioManager.RINGER_MODE_SILENT) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute));
}
else if(mode==AudioManager.RINGER_MODE_VIBRATE) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate));
}
}
});
/* 音量调大声的Button */
upButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
/* 设定音量调大声一格 */
audioMa.adjustVolume(AudioManager.ADJUST_RAISE, 0);
volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
myProgress.setProgress(volume);
/* 设定调整后的声音模式 */
int mode=audioMa.getRingerMode();
if(mode==AudioManager.RINGER_MODE_NORMAL) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal));
}
else if(mode==AudioManager.RINGER_MODE_SILENT) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute));
}
else if(mode==AudioManager.RINGER_MODE_VIBRATE) {
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate));
}
}
});
/* 调整铃声模式为正常模式的Button */
normalButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
/* 设定铃声模式为NORMAL */
audioMa.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
/* 设定音量与声音模式 */
volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
myProgress.setProgress(volume);
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal));
}
});
/* 调整铃声模式为静音模式的Button */
muteButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
/* 设定铃声模式为SILENT */
audioMa.setRingerMode(AudioManager.RINGER_MODE_SILENT);
/* 设定音量与声音状态 */
volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
myProgress.setProgress(volume);
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute));
}
});
/* 调整铃声模式为震动模式的Button */
vibrateButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
/* 设定铃声模式为VIBRATE */
audioMa.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
/* 设定音量与声音状态 */
volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
myProgress.setProgress(volume);
myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate));
}
});
}
}
分享到:
相关推荐
Android系统提供了AudioManager类来管理音频相关的操作,包括音量控制。我们需要在Activity中获取AudioManager实例,并设置音量级别: ```java AudioManager audioManager = (AudioManager) getSystemService(AUDIO...
在Android程序设计中,AudioManager是一个至关重要的组件,它负责管理设备的音频输出,包括控制音量、处理音频流和管理音频焦点。本篇将详细阐述AudioManager的主要功能及其使用方法。 首先,AudioManager的实例化...
- Android提供了`AudioManager`类来管理设备的音频输出,包括音量控制。通过调用`AudioManager`的方法,我们可以实现程序中动态调整音量: - `adjustVolume(int direction, int flags)`:根据参数`direction`(如`...
Android 音量控制是 Android 系统中一个非常重要的功能,通过 AudioManager 类可以控制 Android 设备的音量大小,包括铃声、系统音量、音乐音量、提示声音音量等多种音量类型。下面是关于 Android 音量控制的详细...
首先,我们理解音量控制器在Android系统中的核心功能是调节设备的音频输出级别,包括媒体音量、铃声音量、闹钟音量等。接下来,我们将详细讲解实现这个自定义音量控制器的关键步骤。 1. **创建自定义View** 首先,...
- **AudioManager**:这是Android提供的用于管理音频流的类,开发者可以通过它来控制和获取系统中的音量。 - **Stream Types**:Android中的音频流被分为不同的类型,每种类型对应不同的应用场景,如通话、铃声、...
在Android开发中,有时我们需要对系统的音量进行自定义控制,比如使用Seekbar来模拟音量调节滑块,同时能够根据不同的场景(如媒体播放、通话中)智能切换控制对应的音量。本教程将深入讲解如何实现这个功能,主要...
音量的调控还需要与Android系统的音频管理器AudioManager进行交互。我们需要获取AudioManager的实例,然后调用adjustVolume()或setStreamVolume()方法来改变音量。注意,音频流类型(stream type)的选择很重要,...
在Android平台上,调整系统...总结,Android系统音量和媒体音量的控制涉及到`AudioManager`类的使用,理解其API和音量类别是实现此功能的关键。通过源码分析和实际运行,开发者可以更直观地学习和掌握这一功能的实现。
音量可以通过`AudioManager`调整,进度可以通过`seekTo()`设置`MediaPlayer`的播放位置。 `Android--MediaPlayDemo`这个项目对于初学者来说是一个很好的起点,它演示了如何结合Android的UI组件和多媒体API构建一个...
- **JAVA层次的接口**:这部分接口通过Java语言编写,例如`AudioManager`,提供了对音频输出设备的选择、音量控制等操作。 #### 7.4 Audio硬件抽象层 - **Audio系统的移植**:HAL层为不同的硬件平台提供了一个统一...
Android 静音控制 音量控制 减小增大音量的实例源代码,如示图所示,音量控制时候,适时显示音量进度条: ToggleButton tbMute = (ToggleButton)findViewById(R.id.tbMute);//获得ToggleButton对象 tbMute....
总的来说,Android的AudioManager提供了丰富的功能,使开发者能够灵活地控制应用程序的音频输出。无论是渐进式调整还是直接设置音量,都可以根据需求轻松实现。在编写音量控制功能时,确保考虑用户体验,如添加适当...
为了实现音量控制功能,Android提供了AudioManager类,该类提供了大量与音频管理相关的API。例如,`AudioManager.getStreamVolume(int streamType)`可以获取指定类型的音量值,而`AudioManager.setStreamVolume(int ...
在Android系统中,音量控制、定时、震动、静音以及铃声等元素构成了用户交互的重要部分,而情景模式的设置则进一步提升了用户体验。本文将深入探讨这些知识点,并结合一个小型示例进行解析。 首先,音量控制是...
1. **音量获取与设置**:使用Android系统的AudioManager服务来获取当前音量,并可以调用其方法改变音量级别。例如,`AudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)`获取音乐流的音量,`AudioManager....
在Android操作系统中,控制设备的亮度、音量以及开关功能如GPS和WiFi是常见的操作,这对于用户来说至关重要,因为它们直接影响到设备的使用体验。本文将深入探讨如何在Android平台上实现这些功能。 首先,让我们来...
在Android开发中,有时我们可能需要为用户提供更加个性化的...总之,自定义Android音量调节需要结合SeekBar组件、AudioManager服务以及界面设计技巧,通过监听事件并操作音频流,可以打造出具有个性化的音量控制体验。
在Android系统中,开发者可以通过编程方式来实现对手机音量的控制,包括设定最大音量限制。这样的功能在很多场景下都非常实用,比如避免小孩子过度调整音量导致听力损伤,或者在公共场合防止突然的高音量打扰他人。...
在Android中,音量控制涉及到多个级别,如媒体音量、闹钟音量、铃声音量和系统音量等。这些音量级别可以通过系统的音量对话框进行调整,也可以通过硬件音量键实现快速调整。而仿iOS音量调节的效果主要关注的是视觉...