怎么实现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>

http://www.devdiv.com/home.php?mod=space&uid=14682&do=blog&id=3869
     本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/817361,如需转载请自行联系原作者

Android UI开发第八篇——ViewFlipper 左右滑动效果相关推荐

  1. Android UI开发第四篇——实现像handcent sms或者chomp sms那样的气泡短信样式

    今晚有点时间把断了很长时间的UI开发补一下,这次实现的是像handcent sms或者chomp sms那样的气泡短信样式,也是iphone上的气泡聊天模式.实现这种效果的重点是ListView的di ...

  2. Android UI开发第二十七篇——实现左右划出菜单

    年前就想写左右滑动菜单,苦于没有时间,一直拖到现在,这篇代码实现参考了网上流行的SlidingMenu,使用的FrameLayout布局,不是扩展的HorizontalScrollView. 程序中自 ...

  3. Android UI开发第五篇——自定义列表

    自定义列表,设置列表背景.列表的列背景.列表的间隔线. 借鉴了一些前辈的代码. MainActivity.class public class MainActivity extends Activit ...

  4. Android UI开发第三十篇——使用Fragment构建灵活的桌面

    http://www.lupaworld.com/article-222973-1.html 当我们设计应用程序时,希望能够尽最大限度的适配各种设备,包括4寸屏.7寸屏. 10寸屏等等,Android ...

  5. Android UI开发第三十九篇——Tab界面实现汇总及比较

    Tab布局是iOS的经典布局,Android应用中也有大量应用,前面也写过Android中TAb的实现,<Android UI开发第十八篇--ActivityGroup实现tab功能>.这 ...

  6. Android UI开发第二十五篇——分享一篇自定义的 Action Bar

    Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar.在3.0之前是不能使用Action Bar功能的.这里引入了自定义的Action Bar, ...

  7. Android UI开发第四十一篇——墨迹天气3.0引导界面及动画实现

    周末升级了墨迹天气,看着引导界面做的不错,模仿一下,可能与原作者的代码实现不一样,但是实现的效果还是差不多的.先分享一篇以前的文章,android动画的基础知识,<Android UI开发第十二 ...

  8. Android UI开发——AppCompat实现Action Bar

    http://blog.csdn.net/xyz_lmn/article/details/12623609 每一位Android开发者对Action Bar这种设计都不陌生了,毕竟它已经发布了至少两年 ...

  9. Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)

    文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...

最新文章

  1. 【洛谷 1345】 奶牛的电信
  2. Shell编程基入门
  3. leetcode算法题--二叉搜索树的后序遍历序列
  4. 031 广播变量与累加器
  5. UI上search 的drop down list是怎么实现的
  6. [vue] 怎么捕获组件vue的错误信息?
  7. Way to MongoDB
  8. Vbs判断两个Excel文件的内容--将两个Excel文件相同内容写入新建的Excel文件内
  9. MIMO 瑞利衰落信道 代码 包括天线相关矩阵
  10. z变换解差分方程例题_Z变换及差分方程求解.doc
  11. TOM邮箱6.0版新功能体验—全新的交互设计
  12. Ecshop3.x漏洞复现
  13. c语言remainder函数,remainder
  14. 软件测试的7个基本原则
  15. Credit Card Fraud Detection(信用卡欺诈检测相关数据集)
  16. RxFFmpeg: Android Error while decoding stream #0:0: Invalid data found when processing input
  17. mavens使用阿里云国内私服下载
  18. Java训练work3.Exer6---进制转化
  19. 知识图谱与古希腊人物关系
  20. C语言初阶——5.字符串

热门文章

  1. SQL生成日期维度(到小时)
  2. “Found interface com.mysql.jdbc.Connection, but class was expected ”
  3. python视图函数是什么意思_Flask初学者:视图函数
  4. vscode用鼠标滚轮_前端开发神器 VSCode 使用总结
  5. linux驱动头文件查找目录,在Fedora 20中查找简单设备驱动程序的头文件
  6. android 获取控件高度_安卓开发入门教程UI控件_ProgressBar
  7. ElasticSearch wildcard查询(英文检索)
  8. 指标体系|四个模型教会你指标体系构建的方法
  9. 2021年中国机器视觉市场研究报告
  10. 中国娱乐社交企业出海发展专题报告