1、xml布局文件 为ViewFlipper添加多个视图
<ViewFlipper android:id="@+id/screen_view_flipper" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/view1" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/light_white"> </RelativeLayout> <RelativeLayout android:id="@+id/view2" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/light_red"> </RelativeLayout> </ViewFlipper>
2、MainActivity 中触摸事件,上下调整屏幕亮度,左右切换view。
private ViewFlipper mViewFlipper; float downX; float downY; float moveY; mViewFlipper = (ViewFlipper) findViewById(R.id.screen_view_flipper); @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: downY = event.getY(); downX = event.getX(); // 获取当前亮度 screenBrightness = ViewUtil .getScreenBrightness(ScreenLightActivity.this); break; case MotionEvent.ACTION_MOVE: moveY = event.getY(); float disY = downY - moveY; int heightPixels = getResources().getDisplayMetrics().heightPixels / 2; float percentLight = disY / heightPixels; // 亮度偏移量 int offsetLight = (int) (percentLight * 100); Logger.i("MainActivity", offsetLight+""); // 最终亮度 int endLight = screenBrightness + offsetLight; Logger.i("MainActivity", endLight+""); if (endLight >= 0 && endLight <= 255) { ViewUtil.setBrightness(ScreenLightActivity.this, endLight); ViewUtil.saveBrightness(getContentResolver(), endLight); } break; case MotionEvent.ACTION_UP: //向右滑动 if(event.getX()-downX>100){ mViewFlipper.setInAnimation(this,R.anim.left_in); mViewFlipper.setOutAnimation(this,R.anim.right_out); mViewFlipper.showNext(); } if (downX-event.getX()>100){ mViewFlipper.setInAnimation(this,R.anim.right_in); mViewFlipper.setOutAnimation(this,R.anim.left_out); mViewFlipper.showPrevious(); } break; default: break; } return super.onTouchEvent(event); }