Hotseat栏增加滑动功能
2015-11-16 11:39
429 查看
客户需求:在滑动hotseta栏实现调节屏幕亮度功能。
定位到文件:package/apps/trebuchet/src/com/android/launcher3/Hotseat.java
增加全局变量:
监听
在构造方法中初始化onGestureListener
还有最重要一点:
定位到文件:package/apps/trebuchet/src/com/android/launcher3/Hotseat.java
增加全局变量:
private GestureDetector gestureDetector; private static final int RIGHT = 0; private static final int LEFT = 1;
监听
private GestureDetector.OnGestureListener onGestureListener = new GestureDetector.SimpleOnGestureListener() { @Override public boolean onDown(MotionEvent e) { Log.i("TAG","onDown"); return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { float x = e2.getX() - e1.getX(); float y = e2.getY() - e1.getY(); Log.i("TAG","x = "+x ); if (x > 0) { doResult(RIGHT); //向右滑,调亮 } else if (x < 0) { doResult(LEFT); //向左滑,调暗 } Log.i("TAG","onScroll" 4000 ); return false; } }; public void doResult(int action) { switch (action) { case RIGHT: System.out.println("go right"); //与系统自带调节亮度实现方法相同,具体实现 参考:/framework/base/packages/systemui/com/android/systemui/settings/BrightnessController.java break; case LEFT: System.out.println("go left"); //与系统自带调节亮度实现方法相同,具体实现 参考:/framework/base/packages/systemui/com/android/systemui/settings/BrightnessController.java
在构造方法中初始化onGestureListener
public Hotseat(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); Resources r = context.getResources(); mTransposeLayoutWithOrientation = r.getBoolean(R.bool.hotseat_transpose_layout_with_orientation); mIsLandscape = context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; gestureDetector = new GestureDetector(context,onGestureListener); //初始化 listener }
还有最重要一点:
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { // We don't want any clicks to go through to the hotseat unless the workspace is in // the normal state. if (mLauncher.getWorkspace().workspaceInModalState()) { return true; } /*拦截 具体原理参考 上一篇文章 Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()*/ if (gestureDetector.onTouchEvent(ev)){ return true; } return false; }
相关文章推荐
- CSS中的滑动门技术
- js实现的简洁网页滑动tab菜单效果代码
- javascript制作的滑动图片菜单
- JavaScript实现图片DIV竖向滑动的方法
- JS+CSS实现滑动切换tab菜单效果
- jquery实现相册一下滑动两次的方法
- jquery实现标题字体变换的滑动门菜单效果
- jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
- 基于jQuery滑动杆实现购买日期选择效果
- jQuery实现图片与文字描述左右滑动自动切换的方法
- jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
- 基于jQuery实现的向下滑动二级菜单效果代码
- jquery实现左右滑动菜单效果代码
- jQuery层动画定位滑动效果的方法
- jQuery实现MSN中文网滑动Tab菜单效果代码
- Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
- jQuery控制的不同方向的滑动(向左、向右滑动等)
- jquery实现最简单的滑动菜单效果代码
- JS+CSS实现简易实用的滑动门菜单效果
- Android中实现可滑动的Tab的3种方式