android 控制手机音量的大小 切换声音的模式

(1)程序说明

在android API的AudioManager中,提供了调节手机音量的办法。

audioMa.adjustVolume(AudioManager.ADJUST_LOWER, 0);
audioMa.adjustVolume(AudioManager.ADJUST_RAISE, 0);

也可以调节手机声音的模式为震动或者静音

audioMa.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

audioMa.setRingerMode(AudioManager.RINGER_MODE_SILENT);

audioMa.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

(2)布局文件

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
  android:id="@+id/layout1"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@drawable/white"
  xmlns:android="http://schemas.android.com/apk/res/android"
>
  <TextView
    android:id="@+id/myText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/str_text1"
    android:textSize="16sp"
    android:textColor="@drawable/black"
    android:layout_x="20px"
    android:layout_y="42px"
  >
  </TextView>
  <ImageView
    android:id="@+id/myImage"
    android:layout_width="48px"
    android:layout_height="48px"
    android:layout_x="110px"
    android:layout_y="32px"
  >
  </ImageView>
  <TextView
    android:id="@+id/myText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/str_text2"
    android:textSize="16sp"
    android:textColor="@drawable/black"
    android:layout_x="20px"
    android:layout_y="102px"
  >
  </TextView>
  <ProgressBar
    android:id="@+id/myProgress"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="160dip"
    android:layout_height="wrap_content"
    android:max="7"
    android:progress="5"
    android:layout_x="110px"
    android:layout_y="102px"
  >
  </ProgressBar>
  <ImageButton
    android:id="@+id/downButton"
    android:layout_width="100px"
    android:layout_height="100px"
    android:layout_x="50px"
    android:layout_y="162px"
    android:src="@drawable/down"
  >
  </ImageButton>
  <ImageButton
    android:id="@+id/upButton"
    android:layout_width="100px"
    android:layout_height="100px"
    android:layout_x="150px"
    android:layout_y="162px"
    android:src="@drawable/up"
  >
  </ImageButton>
  <ImageButton
    android:id="@+id/normalButton"
    android:layout_width="60px"
    android:layout_height="60px"
    android:layout_x="50px"
    android:layout_y="272px"
    android:src="@drawable/normal"
  >
  </ImageButton>
  <ImageButton
    android:id="@+id/muteButton"
    android:layout_width="60px"
    android:layout_height="60px"
    android:layout_x="120px"
    android:layout_y="272px"
    android:src="@drawable/mute"
  >
  </ImageButton>
  <ImageButton
    android:id="@+id/vibrateButton"
    android:layout_width="60px"
    android:layout_height="60px"
    android:layout_x="190px"
    android:layout_y="272px"
    android:src="@drawable/vibrate"
  >
  </ImageButton>
</AbsoluteLayout>

(3)代码:

package com.liuzuyi.soundmode;

import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ProgressBar;

public class MainActivity 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;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_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));
		}
		downbutton.setOnClickListener( new OnClickListener() {
			public void onClick(View v) {
				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));
				}	

			}
		});

		upbutton.setOnClickListener( new OnClickListener() {
			public void onClick(View v) {
				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));
				}	

			}
		});
		normalbutton.setOnClickListener( new OnClickListener() {
			public void onClick(View v) {
				audioMa.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
			    volume = audioMa.getStreamVolume(AudioManager.STREAM_RING);
			    myprogress.setProgress(volume);
				myimage.setImageDrawable(getResources().getDrawable(R.drawable.normal));
			}
		});
		mutebutton.setOnClickListener( new OnClickListener() {
			public void onClick(View v) {
				audioMa.setRingerMode(AudioManager.RINGER_MODE_SILENT);
			    volume = audioMa.getStreamVolume(AudioManager.STREAM_RING);
			    myprogress.setProgress(volume);
				myimage.setImageDrawable(getResources().getDrawable(R.drawable.mute));
			}
		});
		vibratebutton.setOnClickListener( new OnClickListener() {
			public void onClick(View v) {
				audioMa.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
			    volume = audioMa.getStreamVolume(AudioManager.STREAM_RING);
			    myprogress.setProgress(volume);
				myimage.setImageDrawable(getResources().getDrawable(R.drawable.vibrate));
			}
		});

	}

}

android 控制手机音量的大小 切换声音的模式,布布扣,bubuko.com

时间: 2024-10-06 20:28:16

android 控制手机音量的大小 切换声音的模式的相关文章

android 控制手机的体积的大小 切换音效模式

(1)项目介绍 于android API的AudioManager于,它提供了一种方法来调整电话音量. audioMa.adjustVolume(AudioManager.ADJUST_LOWER, 0); audioMa.adjustVolume(AudioManager.ADJUST_RAISE, 0); 也能够调节手机声音的模式为震动或者静音 audioMa.setRingerMode(AudioManager.RINGER_MODE_NORMAL); audioMa.setRingerM

手机影音第九天,控制视频全屏播放与退出全屏播放,音量调节按钮来控制视频音量与静音的实现

代码以托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 一.视频全屏播放与退出全屏 系统默认的videoview类,没有调整大小的方法,因此需要自定义一个类,继承videoview,然后重写里面的三个构造方法,再自定义一个调整视频播放页面大小的方法. 1.布局文件 同时,在视频播放的布局文件中,videoview布局要引用上面自定义的类. <?xml version="1.0" encoding=&

android 控制控件的位置和大小

方法一: Android的界面布局可以用两种方法,一种是在xml中布局,一种是和JAVA中Swing一样在JAVA代码中实现Ui界面的布局,用xml的布局管理器布局是很方便的,但是在一些代码中需要动态的显示界面,这个时候xml就缺少了一种灵活性,使用XML和JAVA代码中布局可以解决这样的问题.在此只对JAVA代码中的LoyoutParams方法进行理解及使用. LoyoutParams类中主要保存的是布局参数,元素或组件可以通过这个类实现对布局参数的设置.在xml中它对应的是元素的"空间位置&

Android开发之控制手机音频

本实例通过MediaPlayer播放一首音乐并通过AudioManager控制手机音频,关于AudioManager的详解可参照:Android开发之AudioManager(音频管理器)详解 程序运行效果图: 实例代码: package com.jph.audiomanagerdemo; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import an

Android麦克风录音带音量大小动态显示的圆形自定义View

1.所谓无图无真相,先上效果图.我们要实现的就是中间那个录音的按钮,周边会显示一圈音量大小的波形 2.VolumCircleBar继承自View,我们进行了自定义,代码如下 package com.rdinfo.ccenglish.ui.ccprofile.view; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import andro

浅谈android中手机联系人字母索引表的实现

实际上字母索引表的效果,可以说在现在的众多APP中使用的非常流行,比如支付宝,微信中的联系人,还有购物,买票的APP中选择全国城市,切换城市的时候,这时候的城市也就是按照一个字母索引的顺序来显示,看起来是很方便的.其实这种字母索引表的效果最开始是出现在微信的联系人中.因为觉得这种效果功能在今后的项目中可以说是非常常见,可能会用的上,所以准备来波博客讲述一下实现的原理,一来方便以后自己复习,二来如果能够帮助一些android路上奋斗小伙伴也是蛮有意义的. 下面我们先来看下效果图, 看完效果图后我们

设置和获取Android中各种音量

通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单!AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//通话音量      int max = am.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );      int current = am.getStreamVolume( AudioManager.STRE

Android主题切换—夜间/白天模式探究

现在市面上众多阅读类App都提供了两种主题:白天or夜间. 上述两幅图片,正是两款App的夜间模式效果,所以,依据这个功能,来看看切换主题到底是怎么实现的(当然现在github有好多PluginTheme开源插件,很多时候可以使用这些插件,不过我并不想讲怎么用那些插件,正所谓会用轮子还不如会造轮子). 关于更换主题和换肤 这里提到是做换主题功能,当然与之类似的就是换肤,换肤现在比较流行的是采用插件化动态加载技术来实现的,这样可以起到热插拔作用,需要皮肤时候用户自主的在网上下载便是了,不用皮肤时便

android 应用程序自适应屏幕大小(转载)

android应用自适应多分辨率的解决方法 1. 首先是建立多个layout文件夹(drawable也一样).在res目录下建立多个layout文件夹,文件夹名称为layout-800x480等.需要适应那种分辨率就写成什么.注意:         a.   较大的数字要写在前面:比如layout-854x480而不能写layout-480x854.         b.   两个数字之前是小写字母x,而不是乘号.2. 在不能的layout下调整layout 的长宽等各种设置.以适应不同的分辨率