Android ViewFlipper实现多个布局手势切换的效果
这里用到了前面学过的 手势效果,如果对手势还是不很了解的话可以去看一下这篇文章 Android使用GestureDetector实现手势滑动效果 先看一下布局文件 activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" ><ViewFlipper android:id="@+id/viewFlipper1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerVertical="true" ><LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff000000" android:orientation="vertical" > </LinearLayout><LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffcccccc" android:orientation="vertical" > </LinearLayout><LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffff6600" android:orientation="vertical" > </LinearLayout> </ViewFlipper></RelativeLayout>
布局文件很简单,在ViewFlipper中包含了三个布局,全部用背景颜色区分。 再看一下MainActivity.java
package com.example.viewflipper;import android.os.Bundle; import android.app.Activity; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.Menu; import android.view.MotionEvent; import android.widget.Toast; import android.widget.ViewFlipper;public class MainActivity extends Activity implements OnGestureListener {private GestureDetector mGestureDetector; private ViewFlipper mViewFlipper = null;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGestureDetector = new GestureDetector(this, this); mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper1); }@Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub mGestureDetector.onTouchEvent(event); return super.onTouchEvent(event); }@Override public boolean onDown(MotionEvent arg0) { // TODO Auto-generated method stub // Toast.makeText(this, "onDown", Toast.LENGTH_SHORT).show(); return false; }@Override public boolean onFling(MotionEvent startEvent, MotionEvent endEvent, float velocityX, float velocityY) { // TODO Auto-generated method stub if (startEvent.getY() - endEvent.getY() > 100) { Toast.makeText(this, "手势向上滑动", Toast.LENGTH_SHORT).show(); return true; } else if (startEvent.getY() - endEvent.getY() < -100) { Toast.makeText(this, "手势向下滑动", Toast.LENGTH_SHORT).show(); return true; } else if (startEvent.getX() - endEvent.getX() > 100) { Toast.makeText(this, "手势向左滑动", Toast.LENGTH_SHORT).show(); mViewFlipper.showNext(); return true; } else if (startEvent.getX() - endEvent.getX() < -100) { Toast.makeText(this, "手势向右滑动", Toast.LENGTH_SHORT).show(); mViewFlipper.showPrevious(); return true; } return false; }@Override public void onLongPress(MotionEvent arg0) { // TODO Auto-generated method stub // Toast.makeText(this, "onLongPress ", Toast.LENGTH_SHORT).show(); }@Override public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) { // TODO Auto-generated method stub // Toast.makeText(this, "onScroll", Toast.LENGTH_SHORT).show(); return false; }@Override public void onShowPress(MotionEvent arg0) { // TODO Auto-generated method stub // Toast.makeText(this, "onShowPress", Toast.LENGTH_SHORT).show(); }@Override public boolean onSingleTapUp(MotionEvent arg0) { // TODO Auto-generated method stub // Toast.makeText(this, "onSingleTapUp", Toast.LENGTH_SHORT).show(); return false; }@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; }}
这样就可以实现最简单的切换效果了。
Android ViewFlipper实现多个布局手势切换的效果相关推荐
- android imageview 图片切换动画,模仿优酷Android客户端图片左右滑动(自动切换)效果...
本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现: 具体思路: 1. 工程中需要添加android-support-v4.jar,才能 ...
- android 图片横竖判断_Android横竖屏切换及其对应布局加载问题详解
本文为大家分享了Android横竖屏切换及其对应布局加载问题,供大家参考,具体内容如下 第一,横竖屏切换连带横竖屏布局问题: 如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同 ...
- Android获取输入法高度——输入法与页面布局无缝切换
在QQ或者微信的聊天页面,当输入法和表情栏互相切换时,过度非常自然,而且表情栏高度刚好跟输入法一样.个人感觉这种用户体验特别的好,别看这个细节小,但代码实现处理起来还是有一定难度.今天我就带大家来实现 ...
- Android ViewFlipper 使用
转载请标明出处: http://blog.csdn.net/tyzlmjj/article/details/48576219 本文出自:[M家杰的博客] 概述 ViewFlipper 与 ViewPa ...
- android如何自定义viewpager,Android自定义ViewPager实现个性化的图片切换效果
第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主界面通通ViewPager,以及图片切换也抛弃了ImageSwitch之类的,开始让ViewPager来做.时间长了,ViewPager的 ...
- android实现滑动切换图,Android:使用ViewPager实现左右滑动切换图片加点点
图片发自简书App 1.引入android-support-v4.jar包,在主布局里加入 < ?xml version="1.0" encoding="utf-8 ...
- android学习笔记---56_activity切换动画与页面切换动画,自定义activity窗口切换动画效果的实现.
2013/5/17 Java技术qq交流群:JavaDream:251572072 56_activity切换动画与页面切换动画 ----------------------------------- ...
- 两个Activity左右滑动手势切换
2019独角兽企业重金招聘Python工程师标准>>> 已经接触android四个月了,之前更多的是android的基础学习,在工作上也没有很多开发的工作,所以这几天有空学一下之前一 ...
- android studio 显示view树_Android手势分发和嵌套滚动机制
前言 对于一个Android开发者而言,要开发一个APP你必须要了解事件分发,而要开发一个优秀的APP你就必须要理解嵌套滚动. 在Android的开发体系里面,手势体系是一块非常重要的内容.从 ...
最新文章
- ssha java接口_java – 从Spring在LDAP中设置SSHA密码
- linux /etc/fstab 挂载列表 简介
- Mother's Day
- centos安装后两个启动项、_Windows安装Centos7双系统后Windows启动项消失
- 8万级自动挡智能SUV,舒适好开是亮点,众泰T600Coupe要逆天?
- mysql binlog 订阅_数据库binlog订阅和消费组件canal快速入门
- 机器人走方格(51Nod-1119)
- 传音控股回应“遭华为起诉侵权”:未收到起诉状 科创板上市不受影响
- 学习项目管理PRINCE2有什么用??
- The Introduction Of Filter
- Atiflash显卡BIOS、Nvflsh显卡BIOS、显卡BIOS刷新与超频详细说明教程--转载+BYZ修正...
- 一些常用的物理特殊符号的读法
- macbook proa1708_MacBook Pro 2017 A1708自己更换电池
- 启动mysql 数据库服务器_启动及关闭MySQL服务器的正确方式
- 豆瓣的robots内容分析
- 程序设计思维 A - 区间选点 II(差分约束)
- devstack+ubuntu16.04 desktop版安装openstack S版手册
- buildroot的使用简介
- 计算灰度共生矩阵GLCM
- sqli-labs————less 22
热门文章
- k歌的录音伴奏合成技术如何实现_2019年中国在线K歌行业市场现状,在线K歌用户女性占比较高...
- oracle 9i sql_id,Oracle9i增添 wm_concat函数(转)
- mysql 锁 会话_MySQL会话锁等待关系原理
- Django 聚合查询
- IDEA新建maven项目漏掉webapp目录解决方法
- 女主播还是女主播???
- mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell
- 监听localStorage变化(同页面监听)
- 【算法与数据结构专场】BitMap算法基本操作代码实现
- 《数据库SQL实战》查找入职员工时间排名倒数第三的员工的所有信息