安卓学习之路_20140424_AudioManager、MediaPlayer的综合运用、ScrollView、Gallery

来源:互联网 发布:美国经济数据网站 编辑:程序博客网 时间:2024/06/17 18:45

一、AudioManager

AudioManager是用来对系统的一下音量的设置

常用方法:
android audioManager获取音量:

先获取AudioManager实例,
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

//通话音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL );

int current = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL );

//系统音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM );

current = mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM );

//铃声音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING);

current = mAudioManager.getStreamVolume(AudioManager.STREAM_RING );

//音乐音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC );

current = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC );


//提示声音音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM );

current = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM );


综合运用:

SettingActivity.class

import android.app.Activity;import android.content.Context;import android.media.AudioManager;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import com.jdc.pintu.jigsaw.R;import com.jdc.util.Tools;public class SettingActivity extends Activity implements OnClickListener {ImageView sound, im1, im2, im3, im4;boolean isOn = true;SeekBar size;AudioManager am;int va;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Tools.setFullScreen(this);//设置全屏setContentView(R.layout.activity_setting);//关联布局文件sound = (ImageView) findViewById(R.id.sound);//实例化ImageViewisOn();am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//实例化AudioManagerim1 = (ImageView) findViewById(R.id.button1);im2 = (ImageView) findViewById(R.id.button2);im3 = (ImageView) findViewById(R.id.button3);im4 = (ImageView) findViewById(R.id.button4);im1.setOnClickListener(this);im2.setOnClickListener(this);im3.setOnClickListener(this);im4.setOnClickListener(this);size = (SeekBar) findViewById(R.id.sounds_size);//实例化SeekBarsize.setMax(am.getStreamMaxVolume(AudioManager.STREAM_MUSIC));//设置系统的最大音量为Seekbar的最大值size.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {MainActivity.ma.music.audio.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);//拖动SeekBar设置系统音量的大小}});}public void isOn() {if (isOn) {sound.setBackgroundResource(R.drawable.audio_on);} else {sound.setBackgroundResource(R.drawable.audio_off);}}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button1:MainActivity.ma.music.mp.start();sound.setBackgroundResource(R.drawable.audio_on);break;case R.id.button2:MainActivity.ma.music.mp.pause();sound.setBackgroundResource(R.drawable.audio_off);break;case R.id.button3:MainActivity.ma.music.audio.adjustVolume(AudioManager.ADJUST_LOWER,0);//增大系统音量va = am.getStreamVolume(AudioManager.STREAM_MUSIC);size.setProgress(va);//并把当前系统音量的值传给SeekBarbreak;case R.id.button4:MainActivity.ma.music.audio.adjustVolume(AudioManager.ADJUST_RAISE,0);//减小系统音量va = am.getStreamVolume(AudioManager.STREAM_MUSIC);size.setProgress(va);//并把当前系统音量的值传给SeekBarbreak;default:break;}}}


运行效果:



二、Gallery

注:此类在安卓中已经废弃;

Gallery就是画廊的意思,就是我们常见的一下滑动切换图片的样子;

Gallery一般是配合BaseAdapter来使用的

首先,在布局文件中定义一个Gallery

<Gallery     android:id="@+id/gallery"    android:layout_width="wrap_content"    android:layout_height="wrap_content"/>

然后在我们的Activity中对其实例化,和其控件一样,我们是通过findViewById来进行实例化的。

切换所需要的图片我们通常是存放到res下的drawable目录下,通过其在R.java中生成的id来进行操作,这样做的目的是为了方便,当然我们也可以用位图来进行处理。


实例:

StartActivity.class文件

import com.jdc.pintu.jigsaw.R;import com.jdc.util.Tools;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Gallery;public class StartActivity extends Activity implements OnItemClickListener {Gallery gallery;StartAdapter sa;AlertDialog ad;int pics[] = { R.drawable.b0, R.drawable.b1, R.drawable.b2, R.drawable.b3,R.drawable.b4, R.drawable.b5, R.drawable.b7, R.drawable.b8,R.drawable.b9, };//存放图片的一个数组,通过查找图片的id来获取@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Tools.setFullScreen(this);setContentView(R.layout.activity_start);gallery = (Gallery) findViewById(R.id.gallery);gallery.setOnItemClickListener(this);sa = new StartAdapter(this, pics);gallery.setAdapter(sa);}@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {Builder builder = new AlertDialog.Builder(this);builder.setIcon(getResources().getDrawable(R.drawable.ic_launcher));builder.setTitle("请选择难度等级");builder.setPositiveButton("简单", new AlertDialog.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.setNeutralButton("中等", new AlertDialog.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.setNegativeButton("困难", new AlertDialog.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.show();}}
StartAdapter.class文件

import com.jdc.pintu.jigsaw.R;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;public class StartAdapter extends BaseAdapter {Context con;int pic[];private LayoutInflater mInflater;public StartAdapter(Context con, int[] pic) {this.con = con;this.pic = pic;this.mInflater = LayoutInflater.from(con);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn pic.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {convertView = mInflater.inflate(R.layout.image, null);ImageView image = (ImageView) convertView.findViewById(R.id.img);image.setBackgroundResource(pic[position]);return convertView;}}


运行效果:




三、ScrollView

ScrollView滚动视图,就是我们常见的页面的内容超过我们屏幕,我们可以设置此属性来设置屏幕为可滚动,只需在布局文件的前面嵌套上即可,scrollbar可以设置滚动的方向,如果需要同时垂直和水平滚动,只需在嵌套上Horizontalscroll即可实现。


0 0