本文实例讲述了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, MotionEvent e2, 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,

Animation.RELATIVE_TO_PARENT, 0.0f,

Animation.RELATIVE_TO_PARENT, 0.0f);

inFromRight.setDuration(500);

inFromRight.setInterpolator(new AccelerateInterpolator());

return inFromRight;

}

protected Animation outToLeftAnimation() {

Animation outtoLeft = new TranslateAnimation(

Animation.RELATIVE_TO_PARENT, 0.0f,

Animation.RELATIVE_TO_PARENT, -1.0f,

Animation.RELATIVE_TO_PARENT, 0.0f,

Animation.RELATIVE_TO_PARENT, 0.0f);

outtoLeft.setDuration(500);

outtoLeft.setInterpolator(new AccelerateInterpolator());

return outtoLeft;

}

protected Animation inFromLeftAnimation() {

Animation inFromLeft = new TranslateAnimation(

Animation.RELATIVE_TO_PARENT, -1.0f,

Animation.RELATIVE_TO_PARENT, 0.0f,

Animation.RELATIVE_TO_PARENT, 0.0f,

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,

Animation.RELATIVE_TO_PARENT, +1.0f,

Animation.RELATIVE_TO_PARENT, 0.0f,

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程序设计有所帮助。

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

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

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

  2. android自动悬浮窗代码,Android_Android实现桌面悬浮窗、蒙板效果实例代码,现在很多安全类的软件,比如3 - phpStudy...

    Android实现桌面悬浮窗.蒙板效果实例代码 现在很多安全类的软件,比如360手机助手,百度手机助手等等,都有一个悬浮窗,可以飘浮在桌面上,方便用户使用一些常用的操作. 今天这篇文章,就是介绍如何实 ...

  3. android 修改 dpi_设计规范 | Android系统

    一.基础概念 1.1 屏幕尺寸 屏幕尺寸指的是手机屏幕的物理尺寸,一般用屏幕对角线长度表示,以英寸(inch)为单位.如,小米M4尺寸为5英寸. 1.2 屏幕密度 由于Android属于开源系统,任何 ...

  4. android的原型设计规范,Android设计规范 Material Design-Components(12滑块)

    滑块控件(Sliders) 滑块控件(Sliders,简称滑块)可以让我们通过在连续或间断的区间内滑动锚点来选择一个合适的数值.区间最小值放在左边,对应的,最大值放在右边.滑块(Sliders)可以在 ...

  5. android滑屏设计规范,安卓设计如何实现滑动屏幕出现如图的效果

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.util.ArrayList; import android.content.Context; import android.gr ...

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

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

  7. android底部滑出view,Android CoordinatorLayout与NestedScrollView基于Behavior几行代码实现底部View滑入滑出...

    Android CoordinatorLayout与NestedScrollView基于Behavior几行代码实现底部View滑入滑出 在CoordinatorLayout的Behavior出现之前 ...

  8. iPhone传屏到android,冠树最新款2画面无线传屏设备,苹果/win系统电脑可以轻松快速无线传屏到投影...

    原标题:冠树最新款2画面无线传屏设备,苹果/win系统电脑可以轻松快速无线传屏到投影 众所周知,目前无线传屏设备,分单画面,2画面,4画面等几款,2画面的要比单画面的价格高一大截.主要成本就是2画面之 ...

  9. android平板怎么截图,在安卓手机或平板电脑上截屏的5种方法,学起来!

    在Android手机或平板电脑上截屏并不是随便按下一个按钮那样简单,尤其是当你尝试捕获运动中的特定场景(例如游戏或视频),或者你担心可能会消失的屏幕时,以及当你正打算截屏,但是一不小心把手机屏幕关了的 ...

最新文章

  1. 北斗导航 | 获取观测卫星的位置信息,并绘制卫星的方位角和仰角得到星空图:GSV语句(附Matlab源代码)
  2. Spring MVC 中使用AOP 进行事务管理--XML配置实现
  3. python用代码安装3.6_Python3.6安装及引入Requests库的实现方法
  4. python调用系统_python 执行系统命令
  5. 在活动完成之后的格式工厂下载
  6. sasmgr get_info -D /dev/sasd1 -q raid 查看RX6600 硬件 raid 信息
  7. 10年专业导师整理的单片机控制电动机正反转设计类毕业论文文献
  8. 读宗成庆老师著统计自然语言处理书笔记整理(1)
  9. 你知道怎么用STM32控制舵机吗?
  10. Spring学习笔记(五)--Spring概述
  11. html文字logo
  12. 多媒体大作业 ps+flash
  13. 合同扫描管理大师——为合同管理而生
  14. 我认识的文华财经指标期货高手一年时间从2万到30万的实际经历
  15. 烘焙软件Knald介绍
  16. 我是阿圆,我们明年见。
  17. puzzle(1411)《文字》拼单词、一字不落、汉字魔法
  18. c语言一个数中是否含有8,要心中有“数”——C语言初学者代码中的常见错误与瑕疵(8)...
  19. style type=text/css中的type=text/css到底是什么意思
  20. 人生路上对我影响最大的老师

热门文章

  1. Auto Rooting Linux Local Roots For 2007 / 2008 / 2009 PRV8T
  2. 微信公众号图片防盗链机制的应对办法^-^
  3. 公众号后台开发上传文件功能
  4. java版“本佛祖保佑永无bug”
  5. FL studio 如何升降调
  6. [填坑]winform 内存不足
  7. 电脑文档数据恢复?别急,一招教你快速找回丢失数据!
  8. 记一次Arthas火焰图(Flame Graph)性能分析实战
  9. Linux中最全shell命令常用注意事项
  10. 【生产力汇总】毕业论文写作必备工具,高效自动化