本文实例讲述了Android使用ViewFlipper和GestrueDetector共同实现滑屏效果。分享给大家供大家参考,具体如下:

关于GestureDetector的相关知识,前面已经介绍过了,不懂的大家可以去了解一下。

1.main.xml

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/bg"

android:orientation="vertical" >

android:id="@+id/viewFlipper1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:persistentDrawingCache="animation"

android:flipInterval="1000"

android:inAnimation="@anim/push_left_in"

android:outAnimation="@anim/push_left_out"

>

注:layout1和layout2 布局很简单,就是有一个textview和一个button,就不在这里写出了。其中包含了两个特效xml文件,放在res/anim下

1.push_left_in

android:fromXDelta="100%p"

android:toXDelta="0"

android:duration="500"/>

android:fromAlpha="0.0"

android:toAlpha="1.0"

android:duration="500" />

2 push_left_out

android:fromXDelta="0"

android:toXDelta="-100%p"

android:duration="500"/>

android:fromAlpha="1.0"

android:toAlpha="0.0"

android:duration="500" />

主类:

package com.wj.gesture;

import android.app.Activity;

import android.os.Bundle;

import android.view.GestureDetector;

import android.view.GestureDetector.OnDoubleTapListener;

import android.view.GestureDetector.OnGestureListener;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnTouchListener;

import android.view.animation.AccelerateInterpolator;

import android.view.animation.Animation;

import android.view.animation.TranslateAnimation;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

import android.widget.ViewFlipper;

public class GestureDetectorTest extends Activity implements OnClickListener,OnTouchListener,OnGestureListener,OnDoubleTapListener{

GestureDetector gestureDetector;

private Button next = null,up = null;

private ViewFlipper flipper = null;

private static final int FLING_MIN_DISTANCE = 100;

private static final int FLING_MIN_VELOCITY = 200;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

initview();

setListener();

}

private void initview(){

gestureDetector = new GestureDetector(this);

next = (Button)this.findViewById(R.id.button1);

up = (Button)this.findViewById(R.id.button2);

next.setOnClickListener(this);

up.setOnClickListener(this);

flipper = (ViewFlipper)this.findViewById(R.id.viewFlipper1);

flipper.setLongClickable(true);

}

private void setListener(){

flipper.setOnTouchListener(this);

}

@Override

public boolean onTouch(View v,MotionEvent event) {

//Toast.makeText(this,"ontouch",1000).show();

return gestureDetector.onTouchEvent(event);

}

@Override

public boolean onDown(MotionEvent e) {

// 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;

}

@Override

public boolean onScroll(MotionEvent e1,MotionEvent e2,float distanceX,float distanceY) {

return false;

}

@Override

public void onLongPress(MotionEvent e) {

// TODO Auto-generated method stub

}

@Override

public boolean onFling(MotionEvent e1,float velocityX,float velocityY) {

if (e1.getX()-e2.getX()>FLING_MIN_DISTANCE&&Math.abs(velocityX)>FLING_MIN_VELOCITY) {

flipper.setInAnimation(inFromRightAnimation());

flipper.setOutAnimation(outToLeftAnimation());

flipper.showNext();

}else if (e2.getX()-e1.getX()>FLING_MIN_DISTANCE&&Math.abs(velocityX) > FLING_MIN_VELOCITY) {

flipper.setInAnimation(inFromLeftAnimation());

flipper.setOutAnimation(outToRightAnimation());

flipper.showPrevIoUs();

}

return false;

}

protected Animation inFromRightAnimation() {

Animation inFromRight = new TranslateAnimation(

Animation.RELATIVE_TO_PARENT,+1.0f,Animation.RELATIVE_TO_PARENT,0.0f,0.0f);

inFromRight.setDuration(500);

inFromRight.setInterpolator(new AccelerateInterpolator());

return inFromRight;

}

protected Animation outToLeftAnimation() {

Animation outtoLeft = new TranslateAnimation(

Animation.RELATIVE_TO_PARENT,-1.0f,0.0f);

outtoLeft.setDuration(500);

outtoLeft.setInterpolator(new AccelerateInterpolator());

return outtoLeft;

}

protected Animation inFromLeftAnimation() {

Animation inFromLeft = new TranslateAnimation(

Animation.RELATIVE_TO_PARENT,0.0f);

inFromLeft.setDuration(500);

inFromLeft.setInterpolator(new AccelerateInterpolator());

return inFromLeft;

}

protected Animation outToRightAnimation() {

Animation outtoRight = new TranslateAnimation(

Animation.RELATIVE_TO_PARENT,0.0f);

outtoRight.setDuration(500);

outtoRight.setInterpolator(new AccelerateInterpolator());

return outtoRight;

}

@Override

public boolean onSingleTapConfirmed(MotionEvent e) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean onDoubleTap(MotionEvent e) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean onDoubleTapEvent(MotionEvent e) {

// TODO Auto-generated method stub

return false;

}

@Override

public void onClick(View v) {

if (v==next) {

flipper.showNext();

}else{

flipper.showPrevIoUs();

}

}

}

希望本文所述对大家Android程序设计有所帮助。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

android滑屏效果,Android使用ViewFlipper和GestrueDetector共同实现滑屏效果实例相关推荐

  1. android滑屏设计规范,Android使用ViewFlipper和GestrueDetector共同实现滑屏效果实例

    本文实例讲述了Android使用ViewFlipper和GestrueDetector共同实现滑屏效果.分享给大家供大家参考,具体如下: 关于GestureDetector的相关知识,前面已经介绍过了 ...

  2. android左右滑动fragment,Android基于ViewPager+Fragment实现左右滑屏效果的方法

    本文实例讲述了Android基于ViewPager+Fragment实现左右滑屏效果的方法.分享给大家供大家参考,具体如下: 1.xml布局模板 android:id="@+id/local ...

  3. Android UI开发第八篇——ViewFlipper 左右滑动效果

    怎么实现Android主页面的左右拖动效果.其实实现起来很简单,就是使用ViewFlipper来将您要来回拖动的View装在一起,然后与GestureDetector手势识别类来联动,确定要显示哪个V ...

  4. android图片点击全屏显示,Android浏览图片,点击放大至全屏效果

    近期做一个项目类似于QQ空间,做到照片浏览的功能,对于QQ空间中点击图片放大至全屏,感觉效果非常赞,于是也做了个类似的效果. 例如以下. 我不知道QQ那个是怎么做的.我的思路例如以下: 首先.从图片缩 ...

  5. Android实现高德地图上拉,ScrollLayout:上拉滑动上滑拖出,类似高德地图百度地图抽屉拖拽效果...

    摘要 在ScrollView或者ListView里面使用ViewPager.支持手势上拉滑出,中途停顿,下滑退出页面,类似高德地图百度地图内场景抽屉拖拽效果效果 Gif动画 类似使用 Demo 下载A ...

  6. android 点击图片动画效果,Android仿微信图片点击全屏效果

    废话不多说,先看下Android图片点击全屏效果: 先是微信的 再是模仿的 先说下实现原理,再一步步分析 这里总共有2个Activity一个就是主页,一个就是显示我们图片效果的页面,参数通过Inten ...

  7. Android折叠屏开发学习(三)---使用MotionLayout实现折叠屏分屏效果

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为6259字,预计阅读11分钟 前言 今天是折叠屏开发的第三篇,前面已经介绍了铰链的角度监听和Jetpack Window实现监听 ...

  8. 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题

    . 参考界面 : 携程app首页的广告栏, 使用ViewPager实现        自制页面效果图 : 源码下载地址: http://download.csdn.net/detail/han1202 ...

  9. android 优酷 自动全屏播放,Android如何实现仿优酷视频的悬浮窗播放效果

    Android如何实现仿优酷视频的悬浮窗播放效果 发布时间:2020-07-11 10:24:43 来源:亿速云 阅读:228 作者:清晨 这篇文章主要介绍Android如何实现仿优酷视频的悬浮窗播放 ...

最新文章

  1. [译]5步实现Silverlight中的Command
  2. Fragment 生命周期的详情
  3. 三十二、深入Python中的文件操作
  4. 记录一个解决了一个下午加一个晚上的问题,关于springMVC上传文件的功能
  5. python去除图像光照不均匀_CVPR 2020 | 从重建质量到感知质量:用于低光照增强的半监督学习方法...
  6. 新文速递 | 盒装数据:一种基于数据盒的数据产品形态
  7. Leetcode每日一题:452.minimum-number-of-arrows-to-burst-balloons(最少数量的箭引爆气球)
  8. 与中石油分享SOA成功实践
  9. mktime 夏令时
  10. python 模拟用户点击浏览器_浏览器行为模拟之requests、selenium模块
  11. pr如何处理音效_PR剪辑如何让视频声音更好听
  12. excel保存csv文件数字失真解决办法
  13. usb摄像头android录像软件,USB摄像头app
  14. HP笔记本装XP,‘基本系统设备’驱动的安装
  15. Cilium 官方文档翻译(7) IPAM Kubernetes Host模式
  16. nodejs前端+后端
  17. html 超链接标签 a 的基本用法
  18. 【渝粤题库】广东开放大学 互联网金融本 形成性考核
  19. web端网页变为灰色
  20. java课题背景,办公自动化系统论文-课题研究的背景和意义及国内外发展状况.doc...

热门文章

  1. Android应用内社区SDK技术架构浅析
  2. 测试无线网网速软件,技术员教你解决怎么测试无线网络网速
  3. 转:移动互联:没有新故事没有新大佬
  4. iphone苹果二手手机购买前必看
  5. snap install cloudcompare碰到问题
  6. 基于Jsoup的Java爬虫-爬取必应壁纸网站的壁纸(Java静态壁纸爬虫实例)
  7. oracle12c用plsql连不上,PLSQL连接oracle12c
  8. 9月最新版 H5移动棋牌游戏联运推广平台移动游戏系统源代码下载(带安装说明)
  9. 服务器使用固态硬盘的优缺点
  10. node 单元测试_如何在Node中模拟对单元测试的请求