android开发之GestureDetector手势识别(调节音量、亮度、快进和

写UI布局:

===”vertical” ><include=>==”match_parent” ><com.zanelove.gesturedetectordemo.views.MyVideoView=”match_parent” /><LinearLayout====”gone”><ImageView==”@drawable/btn_pause” /><TextView===”15sp” /><SeekBar==”2″ /><TextView===”15sp” /><ImageView==><RelativeLayout===”gone” ><ImageView==”@drawable/souhu_player_volume” /><TextView===><RelativeLayout===”gone” ><ImageView==”@drawable/souhu_player_bright” /><TextView===><RelativeLayout===”gone”><ImageView==”@drawable/souhu_player_backward” /><TextView===></RelativeLayout>

以上将UI布局给大伙粘贴上来了,大家按照各自的需求改吧改吧…即可

那么,就下来我将首先给大家分析分析如何通过手势识别来调节音量、亮度、快键和后退需求!

一提到手势识别,大伙第一反应绝对是Google提供给我们的GestureDetector类,没错今天我们就使用使用这个类来给大家完成以上的需求!

第一:将主逻辑代码类继承FragmentActivity类并实现OnGestureListener监听和OnTouchListener监听,同时在onCreate方法中创建GestureDetector对象,这时需要传递两个对象,这也是为啥我要继承和实现了!

GestureDetector gestureDetector = new GestureDetector(this, this);

第二:获取UI布局中定义的控件

这些你完全可以使用xUtils第三方工具的注解来完成以下操作:

@ViewInject(R.id.gesture_bright_layout)RelativeLayout gesture_bright_layout;ViewUtils.inject(this);

也可以通过findViewById方法:

// 视频播放控件tv_pro_play = (MyVideoView) findViewById(R.id.tv_pro_play);/*iv_full_screen = (ImageView) findViewById(R.id.iv_full_screen);iv_play_pause = (ImageView) findViewById(R.id.iv_play_pause);ll_player_controller = (LinearLayout) findViewById(R.id.ll_player_controller);iv_play_pause = (ImageView) findViewById(R.id.iv_play_pause);sb_video_progress = (SeekBar) findViewById(R.id.sb_video_progress);iv_full_screen = (ImageView) findViewById(R.id.iv_full_screen);tv_playing_time = (TextView) findViewById(R.id.tv_playing_time);tv_total_time = (TextView) findViewById(R.id.tv_total_time);*/// ****************音量/进度/亮度*********************root_layout = (RelativeLayout) findViewById(R.id.root_layout);gesture_volume_layout = (RelativeLayout) findViewById(R.id.gesture_volume_layout);gesture_bright_layout = (RelativeLayout) findViewById(R.id.gesture_bright_layout);gesture_progress_layout = (RelativeLayout) findViewById(R.id.gesture_progress_layout);geture_tv_progress_time = (TextView) findViewById(R.id.geture_tv_progress_time);geture_tv_volume_percentage = (TextView) findViewById(R.id.geture_tv_volume_percentage);geture_tv_bright_percentage = (TextView) findViewById(R.id.geture_tv_bright_percentage);gesture_iv_progress = (ImageView) findViewById(R.id.gesture_iv_progress);gesture_iv_player_volume = (ImageView) findViewById(R.id.gesture_iv_player_volume);gesture_iv_player_bright = (ImageView) findViewById(R.id.gesture_iv_player_bright);gestureDetector = new GestureDetector(this, this); //需要实现OnGestureListener监听root_layout.setLongClickable(true);gestureDetector.setIsLongpressEnabled(true);root_layout.setOnTouchListener(this);//需要实现OnTouchListener监听audiomanager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);maxVolume = audiomanager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); // 获取系统最大音量currentVolume = audiomanager.getStreamVolume(AudioManager.STREAM_MUSIC); // 获取当前值

第三:获取视频播放窗口的尺寸,判断触发的视频播放窗口位置来识别不同的操作和需求:

/** 获取视频播放窗口的尺寸 */ViewTreeObserver viewObserver = root_layout.getViewTreeObserver();viewObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {() {root_layout.getViewTreeObserver().removeGlobalOnLayoutListener(this);playerWidth = root_layout.getWidth();playerHeight = root_layout.getHeight();}});那绿叶上的水珠,是思念的泪滴。

android开发之GestureDetector手势识别(调节音量、亮度、快进和

相关文章:

你感兴趣的文章:

标签云: