編輯:關於android開發

1_得到當前音量和最大音量
//關於設置音量 private int currentVolume;//當前音量值 private int currentMaxVolume;//當前最大音量 private AudioManager am; am = (AudioManager) getSystemService(AUDIO_SERVICE); currentVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC); currentMaxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
2_拖動的時候改變音量
voice_seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
sendDelayedHideControlPlayerMessage();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
removeDelayedHideControlPlayerMessage();
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser){
updateVolume(progress);
}
}
});
/**
* 修改音量范圍0~15
* @param progress2
*/
protected void updateVolume(int volume) {
am.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
voice_seekBar.setProgress(volume);
currentVolume = volume;
}
3_靜音和非靜音
case R.id.btn_voice:
isMute = !isMute;
updateVolume(currentVolume);
break;
/**
* 修改音量范圍0~15
* @param progress2
*/
protected void updateVolume(int volume) {
if(isMute){
am.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
voice_seekBar.setProgress(0);
}else{
am.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
voice_seekBar.setProgress(volume);
}
currentVolume = volume;
}
private float startY;
/**
* 滑動的區域
*/
private float touchRang;
/**
* 當前的音量
*/
private int mVol;
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN://手指按下屏幕
//1.記錄相關的值
startY = event.getY();
touchRang =Math.min(screenWidth, screenHeight);//screenHeight
mVol = am.getStreamVolume(AudioManager.STREAM_MUSIC);
handler.removeMessages(HIDE_MEDIACONTROL);
break;
case MotionEvent.ACTION_MOVE://手指在屏幕上移動
//2.來到結束的坐標
float endY = event.getY();
//3.計算偏移量
float distanceY = startY - endY;
//要改變的聲音 = (滑動的距離 / 總距離)*最大音量
float delta = (distanceY/touchRang)*maxVolume;
//最終聲音 = 原來的聲音 + 要改變的聲音
float volum e = Math.min(Math.max(mVol+delta,0),maxVolume);
if(delta != 0){
updatavolumeProgress((int) volume);
}
// startY = event.getY();
break;
case MotionEvent.ACTION_UP://手指離開屏幕
handler.sendEmptyMessageDelayed(HIDE_MEDIACONTROL,5000);
break;
}
return super.onTouchEvent(event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
currentVolume--;
updatavolumeProgress(currentVolume);
handler.removeMessages(HIDE_MEDIACONTROL);
handler.sendEmptyMessageDelayed(HIDE_MEDIACONTROL, 5000);
return true;
}else if(keyCode ==KeyEvent.KEYCODE_VOLUME_UP){
currentVolume++;
updatavolumeProgress(currentVolume);
handler.removeMessages(HIDE_MEDIACONTROL);
handler.sendEmptyMessageDelayed(HIDE_MEDIACONTROL, 5000);
return true;
}
return super.onKeyDown(keyCode, event);
}
調用meitu秀秀.so文件實現美圖功能,meitu.so
調用meitu秀秀.so文件實現美圖功能,meitu.so本文屬於實戰系列,是對《Android C代碼回調java方法》等文的實踐,調用meitu秀秀的libmtima
安卓第一天筆記,安卓第一天
安卓第一天筆記,安卓第一天安卓第一天筆記 1.移動通信的發展G--(generation) 1G:模擬制式 2G:GSM/CDMA 2.5G:GPRS 2.75G:EDG
Android基礎入門教程——9.3 使用Camera拍照
Android基礎入門教程——9.3 使用Camera拍照 Android基礎入門教程——9.3 使用Camera拍照 標簽(空格分隔): A
Android百度地圖API集成一《基礎地圖》,集成百度地圖api
Android百度地圖API集成一《基礎地圖》,集成百度地圖api 在使用百度地圖API集成百度地圖時,碰到了一些坑,特開此貼記錄。。。 直接開始代碼 1.新建