怎么实现Android主页面的左右拖动效果。其实实现起来很简单,就是使用ViewFlipper来将您要来回拖动的View装在一起,然后与GestureDetector手势识别类来联动,确定要显示哪个View,加上一点点动画效果即可。
java code:
public class TestFlip extends Activity implements OnGestureListener {
private ViewFlipper flipper;
private GestureDetector detector;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
detector = new GestureDetector(this);
flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper01);
flipper.addView(addView(R.layout.layout1));
flipper.addView(addView(R.layout.layout2));
flipper.addView(addView(R.layout.layout3));
flipper.addView(addView(R.layout.layout4));
}
private View addView(int layout) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(layout, null);
return view;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return this.detector.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > 120) {
this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
this.flipper.showNext();
return true;
} else if (e1.getX() - e2.getX() < -120) {
this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));
this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));
this.flipper.showPrevious();
return true;
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
}
xml code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ViewFlipper android:id="@+id/ViewFlipper01"
android:layout_width="fill_parent" android:layout_height="fill_parent">
</ViewFlipper>
</LinearLayout>
分享到:
相关推荐
UI开发第八篇——ViewFlipper 左右滑动效果UI开发第八篇——ViewFlipper 左右滑动效果
安卓Android源码——ViewFlipper1.rar
Android基础控件——ViewFlipper的使用,仿淘宝头条垂直广告条
安卓Android源码——ViewFlipper2.rar
安卓Android源码——ViewFlipper水平滑动.zip
安卓Android源码——ViewFlipper水平滑动.rar
安卓Andriod源码——ViewFlipper水平滑动.zip
安卓Android源码——ActivityGroup + GridView + ViewFlipper 实现选项卡.rar
安卓Android源码——Gallery+ImageSwitcher+ViewFlipper实现手机查看壁纸效果.zip
安卓Android源码——Gallery+ImageSwitcher+ViewFlipper实现手机查看壁纸效果.rar
增加ViewFlipper中view的复用,完成ViewFlipper的优化使用
Android 滑动效果ViewFlipper Android 滑动效果ViewFlipper
安卓Android源码——GridView+ViewFlipper布局界面,模仿“机锋市场.zip
Android源码——GridView + ViewFlipper布局界面,模仿“机锋市场.zip
Android源码——GridView + ViewFlipper布局界面,模仿“机锋市场.7z
Android使用ViewFlipper实现Switch。开关部分通过自定义控件继承ViewFlipper来实现,开关动画通过anim文件来实现。
使用ViewFlipper实现Android仿淘宝头条滚动广告条,http://blog.csdn.net/qq_35605213/article/details/79564914