一、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即可实现。