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

一、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;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Tools.setFullScreen(this);//设置全屏
		setContentView(R.layout.activity_setting);//关联布局文件
		sound = (ImageView) findViewById(R.id.sound);//实例化ImageView
		isOn();
		am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//实例化AudioManager

		im1 = (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);//实例化SeekBar
		size.setMax(am.getStreamMaxVolume(AudioManager.STREAM_MUSIC));//设置系统的最大音量为Seekbar的最大值

		size.setOnSeekBarChangeListener(new 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) {
				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);
		}
	}

	@Override
	public 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);//并把当前系统音量的值传给SeekBar

			break;

		case R.id.button4:
			MainActivity.ma.music.audio.adjustVolume(AudioManager.ADJUST_RAISE,
					0);//减小系统音量

			va = am.getStreamVolume(AudioManager.STREAM_MUSIC);
			size.setProgress(va);//并把当前系统音量的值传给SeekBar
			break;

		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来获取

	@Override
	protected 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);
	}

	@Override
	public 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() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				
			}
		});
		builder.setNeutralButton("中等", new AlertDialog.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				
			}
		});
		builder.setNegativeButton("困难", new AlertDialog.OnClickListener() {
			@Override
			public 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);
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return pic.length;
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值