参考文献
https://blog.csdn.net/u010181592/article/details/49561689

private View mVolumeBrightnessLayout;
private ImageView mOperationBg;
private TextView mOperationTv;
private GestureDetector mGestureDetector;
private static final int HIDEFRAM = 0;
//最大声音
private int mMaxVolume;
// 当前声音
private int mVolume = -1;
//当前亮度
private float mBrightness = -1f;
private boolean progress_turn;
private int progress;

五、vitamio声音和亮度显示
case HIDEFRAM:
mVolumeBrightnessLayout.setVisibility(View.GONE);
mOperationTv.setVisibility(View.GONE);
break;

五、vitamio声音和亮度显示

private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}

@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
  //当收拾结束,并且是单击结束时,控制器隐藏/显示
  if (isShowing()) {
    hide();
  } else {
    show();
  }
  return super.onSingleTapConfirmed(e);
}

@Override
public boolean onDown(MotionEvent e) {
  progress = getProgress();
  return true;
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
  float beginX = e1.getX();
  float endX = e2.getX();
  float beginY = e1.getY();
  float endY = e2.getY();

  Display disp = activity.getWindowManager().getDefaultDisplay();
  Point size = new Point();
  disp.getSize(size);
  int windowWidth = size.x;
  int windowHeight = size.y;
  if (Math.abs(endX - beginX) < Math.abs(beginY - endY)) {//上下滑动
    if (beginX > windowWidth * 3.0 / 4.0) {// 右边滑动 屏幕3/5
      onVolumeSlide((beginY - endY) / windowHeight);
    } else if (beginX < windowWidth * 1.0 / 4.0) {// 左边滑动 屏幕2/5
      onBrightnessSlide((beginY - endY) / windowHeight);
    }
  }

// else {
//// onSeekTo((endX - beginX) / 20);//左右进度条滑动改变
// }
return super.onScroll(e1, e2, distanceX, distanceY);
}
//双击暂停或开始
@Override
public boolean onDoubleTap(MotionEvent e) {
updatePausePlay();
return true;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
  return super.onFling(e1, e2, velocityX, velocityY);
}

}

/**
* 滑动改变声音大小
*
* @param percent
*/
private void onVolumeSlide(float percent) {
if (mVolume == -1) {
mVolume = mAM.getStreamVolume(AudioManager.STREAM_MUSIC);
if (mVolume < 0)
mVolume = 0;

  // 显示

// mOperationBg.setImageResource(R.drawable.video_volumn_bg);
mVolumeBrightnessLayout.setVisibility(View.VISIBLE);
mOperationTv.setVisibility(VISIBLE);
}

int index = (int) (percent * mMaxVolume) + mVolume;
if (index > mMaxVolume)
  index = mMaxVolume;
else if (index < 0)
  index = 0;
if (index >= 10) {
  mOperationBg.setImageResource(R.drawable.volmn_100);
} else if (index >= 5 && index < 10) {
  mOperationBg.setImageResource(R.drawable.volmn_60);
} else if (index > 0 && index < 5) {
  mOperationBg.setImageResource(R.drawable.volmn_30);
} else {
  mOperationBg.setImageResource(R.drawable.volmn_no);
}
//DecimalFormat    df   = new DecimalFormat("######0.00");
mOperationTv.setText((int) (((double) index / mMaxVolume)*100)+"%");
// 变更声音
mAM.setStreamVolume(AudioManager.STREAM_MUSIC, index, 0);

}

/**

  • 滑动改变亮度

  • @param percent
    */
    private void onBrightnessSlide(float percent) {
    if (mBrightness < 0) {
    mBrightness = activity.getWindow().getAttributes().screenBrightness;
    if (mBrightness <= 0.00f)
    mBrightness = 0.50f;
    if (mBrightness < 0.01f)
    mBrightness = 0.01f;

    // 显示
    //mOperationmBrightnessBg.setImageResource(R.drawable.video_brightness_bg);
    mVolumeBrightnessLayout.setVisibility(View.VISIBLE);
    mOperationTv.setVisibility(VISIBLE);

}



WindowManager.LayoutParams lpa = activity.getWindow().getAttributes();
lpa.screenBrightness = mBrightness + percent;
if (lpa.screenBrightness > 1.0f)
  lpa.screenBrightness = 1.0f;
else if (lpa.screenBrightness < 0.01f)
  lpa.screenBrightness = 0.01f;
activity.getWindow().setAttributes(lpa);

mOperationTv.setText((int) (lpa.screenBrightness * 100) + "%");
if (lpa.screenBrightness * 100 >= 90) {
  mOperationBg.setImageResource(R.drawable.light_100);
} else if (lpa.screenBrightness * 100 >= 80 && lpa.screenBrightness * 100 < 90) {
  mOperationBg.setImageResource(R.drawable.light_90);
} else if (lpa.screenBrightness * 100 >= 70 && lpa.screenBrightness * 100 < 80) {
  mOperationBg.setImageResource(R.drawable.light_80);
} else if (lpa.screenBrightness * 100 >= 60 && lpa.screenBrightness * 100 < 70) {
  mOperationBg.setImageResource(R.drawable.light_70);
} else if (lpa.screenBrightness * 100 >= 50 && lpa.screenBrightness * 100 < 60) {
  mOperationBg.setImageResource(R.drawable.light_60);
} else if (lpa.screenBrightness * 100 >= 40 && lpa.screenBrightness * 100 < 50) {
  mOperationBg.setImageResource(R.drawable.light_50);
} else if (lpa.screenBrightness * 100 >= 30 && lpa.screenBrightness * 100 < 40) {
  mOperationBg.setImageResource(R.drawable.light_40);
} else if (lpa.screenBrightness * 100 >= 20 && lpa.screenBrightness * 100 < 20) {
  mOperationBg.setImageResource(R.drawable.light_30);
} else if (lpa.screenBrightness * 100 >= 10 && lpa.screenBrightness * 100 < 20) {
  mOperationBg.setImageResource(R.drawable.light_20);
}

}

//声音管理器
private boolean initController(Context context) {
mContext = context;
mAM = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return true;
}

mVolumeBrightnessLayout = (RelativeLayout)v.findViewById(R.id.operation_volume_brightness);
mOperationBg = (ImageView)v.findViewById(R.id.operation_bg);
mOperationTv = (TextView) v.findViewById(R.id.operation_tv);
mOperationTv.setVisibility(View.GONE);
mMaxVolume = mAM.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

******AudioManager mAM前面声明

五、vitamio声音和亮度显示

/**

  • 手势结束
    */
    private void endGesture() {
    mVolume = -1;
    mBrightness = -1f;
    // 隐藏
    mHandler.removeMessages(HIDEFRAM);
    mHandler.sendEmptyMessageDelayed(HIDEFRAM, 1);
    }

最后是布局文件

    <ImageView
        android:id="@+id/operation_bg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/video_volumn_bg"/>

    <TextView
        android:id="@+id/operation_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/operation_bg"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom ="true"
        android:text="32:22/45:00"
        android:textColor="#ffffff"
        android:textSize="10sp"
        android:visibility="gone"
        />
</RelativeLayout>

相关文章:

  • 2021-12-20
  • 2022-12-23
  • 2021-06-15
  • 2022-01-10
  • 2022-02-19
  • 2022-12-23
  • 2021-08-14
猜你喜欢
  • 2021-11-28
  • 2022-02-23
  • 2021-12-30
  • 2022-12-23
  • 2021-06-28
  • 2021-06-11
  • 2021-08-18
相关资源
相似解决方案