手势控制音量、亮度
来源:互联网 发布:淘宝付费推广方式 编辑:程序博客网 时间:2024/05/19 22:50
/** * Created by hghl on 2017/8/23. */public class GestureActivity extends Activity implements OnTouchListener { private Button mButton = null; private int systemBrightness; private AudioManager audioManager = null; GestureDetector mGesture = null; private boolean moveLight = false; private float lightChange = 0f; private boolean moveVoice = false; private float voiceChange = 0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); audioManager =(AudioManager) getSystemService(Service.AUDIO_SERVICE); mButton = (Button)findViewById(R.id.button1); mButton.setOnTouchListener(this); try { systemBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); lightChange = systemBrightness; } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); } } @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if (mGesture == null) { mGesture = new GestureDetector(this, new GestureListener()); } if (event.getAction() == MotionEvent.ACTION_UP) { voiceChange = 0; } return mGesture.onTouchEvent(event); }// private int verticalMinDistance = 20;// private int minVelocity = 0; class GestureListener extends SimpleOnGestureListener { @Override public boolean onDoubleTap(MotionEvent e) { // TODO Auto-generated method stub Log.i("TEST===========", "onDoubleTap"); return super.onDoubleTap(e); } @Override public boolean onDown(MotionEvent e) { int viewWidth4 = Math.round(mButton.getWidth() / 3.0f); moveLight = false; moveVoice = false; if (viewWidth4 > e.getX()) { //调节亮度 moveLight = true; } else if ((viewWidth4 * 2) < e.getX()) { //调节音量 moveVoice = true; } // TODO Auto-generated method stub Log.i("TEST===========", "onDown"); return super.onDown(e); } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // TODO Auto-generated method stub// if (e1.getX() - e2.getX() > verticalMinDistance && Math.abs(velocityX) > minVelocity) {// Toast.makeText(GestureActivity.this, "向左手势", Toast.LENGTH_SHORT).show();// } else if (e2.getX() - e1.getX() > verticalMinDistance && Math.abs(velocityX) > minVelocity) {// Toast.makeText(GestureActivity.this, "向右手势", Toast.LENGTH_SHORT).show();// } return super.onFling(e1, e2, velocityX, velocityY); } @Override public void onLongPress(MotionEvent e) { // TODO Auto-generated method stub Log.i("TEST===========", "onLongPress"); super.onLongPress(e); } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // TODO Auto-generated method stub Log.i("TEST===========", "onScroll:distanceX = " + distanceX + " distanceY = " + distanceY); if(moveLight) { changeLight(distanceY); } if (moveVoice) { changeVoice((Math.round(distanceY))); } return super.onScroll(e1, e2, distanceX, distanceY); } @Override public boolean onSingleTapUp(MotionEvent e) { // TODO Auto-generated method stub Log.i("TEST===========", "onSingleTapUp"); return super.onSingleTapUp(e); } @Override public boolean onDoubleTapEvent(MotionEvent e) { Log.i("TEST===========", "onDoubleTapEvent"); return super.onDoubleTapEvent(e); } } private void changeVoice(int distanceY){ voiceChange = voiceChange + distanceY; float baseNumber = mButton.getHeight() / 24.0f; if (voiceChange >= baseNumber) { voiceChange = 0; audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); } else if ((0 - voiceChange) >= baseNumber) { voiceChange = 0; audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); } } private void changeLight(float distanceY){ int height = mButton.getHeight(); lightChange = lightChange + distanceY / height * 255f; if (lightChange > 255) { lightChange = 255f; } else if (lightChange < 0) { lightChange = 0; } if(moveLight) { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = Float.valueOf(lightChange) * (1f / 255f); getWindow().setAttributes(lp); } }}
阅读全文
0 0
- 手势控制音量、亮度
- Android视频播放器--手势控制亮度、音量、缩放
- 视频播放器手势操作控制进度、音量、亮度
- Android视频播放器--手势控制亮度、音量、缩放
- IOS 手势音量控制
- WinCE中的音量/亮度控制
- 使用Vitamio打造自己的Android万能播放器—— 手势控制亮度、音量、缩放
- iOS流媒体开发之二:滑动手势控制音量、亮度和进度
- [绍棠] iOS流媒体开发:滑动手势控制音量、亮度和进度
- iOS流媒体开发之二:滑动手势控制音量、亮度和进度
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 4.10 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- Leetcode-Intersection of Two Linked Lists-Python
- XCode开发学习
- 判断字符串中是否含有关键词(关键词会有多个,英文逗号隔开)
- libevent札记
- 阿里前CEO卫哲:我特别反对无人便利店 凤凰新闻 08-24 10:55 原标题:阿里前CEO卫哲:我特别反对无人便利店 卫哲,32岁就成长为史上最年轻的世界500强中国区总裁,36岁成为阿里巴巴CE
- 手势控制音量、亮度
- Galaxy Note8面世,“三维立体”发布会传递怎样的信号?
- JAVA几种对话框的弹出
- Angular 4.x 修仙之路
- 数字金字塔
- 判断一个数字是不是2的整数次方
- GJJ的日常之沉迷数学
- 服务器会话切换
- [设计模式](十三):中介模式|访问者模式|解释器模式(三种中间类行为模式)