android滑屏效果,Android使用ViewFlipper和GestrueDetector共同实现滑屏效果实例
本文实例讲述了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共同实现滑屏效果实例相关推荐
- android滑屏设计规范,Android使用ViewFlipper和GestrueDetector共同实现滑屏效果实例
本文实例讲述了Android使用ViewFlipper和GestrueDetector共同实现滑屏效果.分享给大家供大家参考,具体如下: 关于GestureDetector的相关知识,前面已经介绍过了 ...
- android左右滑动fragment,Android基于ViewPager+Fragment实现左右滑屏效果的方法
本文实例讲述了Android基于ViewPager+Fragment实现左右滑屏效果的方法.分享给大家供大家参考,具体如下: 1.xml布局模板 android:id="@+id/local ...
- Android UI开发第八篇——ViewFlipper 左右滑动效果
怎么实现Android主页面的左右拖动效果.其实实现起来很简单,就是使用ViewFlipper来将您要来回拖动的View装在一起,然后与GestureDetector手势识别类来联动,确定要显示哪个V ...
- android图片点击全屏显示,Android浏览图片,点击放大至全屏效果
近期做一个项目类似于QQ空间,做到照片浏览的功能,对于QQ空间中点击图片放大至全屏,感觉效果非常赞,于是也做了个类似的效果. 例如以下. 我不知道QQ那个是怎么做的.我的思路例如以下: 首先.从图片缩 ...
- Android实现高德地图上拉,ScrollLayout:上拉滑动上滑拖出,类似高德地图百度地图抽屉拖拽效果...
摘要 在ScrollView或者ListView里面使用ViewPager.支持手势上拉滑出,中途停顿,下滑退出页面,类似高德地图百度地图内场景抽屉拖拽效果效果 Gif动画 类似使用 Demo 下载A ...
- android 点击图片动画效果,Android仿微信图片点击全屏效果
废话不多说,先看下Android图片点击全屏效果: 先是微信的 再是模仿的 先说下实现原理,再一步步分析 这里总共有2个Activity一个就是主页,一个就是显示我们图片效果的页面,参数通过Inten ...
- Android折叠屏开发学习(三)---使用MotionLayout实现折叠屏分屏效果
学更好的别人, 做更好的自己. --<微卡智享> 本文长度为6259字,预计阅读11分钟 前言 今天是折叠屏开发的第三篇,前面已经介绍了铰链的角度监听和Jetpack Window实现监听 ...
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
. 参考界面 : 携程app首页的广告栏, 使用ViewPager实现 自制页面效果图 : 源码下载地址: http://download.csdn.net/detail/han1202 ...
- android 优酷 自动全屏播放,Android如何实现仿优酷视频的悬浮窗播放效果
Android如何实现仿优酷视频的悬浮窗播放效果 发布时间:2020-07-11 10:24:43 来源:亿速云 阅读:228 作者:清晨 这篇文章主要介绍Android如何实现仿优酷视频的悬浮窗播放 ...
最新文章
- [译]5步实现Silverlight中的Command
- Fragment 生命周期的详情
- 三十二、深入Python中的文件操作
- 记录一个解决了一个下午加一个晚上的问题,关于springMVC上传文件的功能
- python去除图像光照不均匀_CVPR 2020 | 从重建质量到感知质量:用于低光照增强的半监督学习方法...
- 新文速递 | 盒装数据:一种基于数据盒的数据产品形态
- Leetcode每日一题:452.minimum-number-of-arrows-to-burst-balloons(最少数量的箭引爆气球)
- 与中石油分享SOA成功实践
- mktime 夏令时
- python 模拟用户点击浏览器_浏览器行为模拟之requests、selenium模块
- pr如何处理音效_PR剪辑如何让视频声音更好听
- excel保存csv文件数字失真解决办法
- usb摄像头android录像软件,USB摄像头app
- HP笔记本装XP,‘基本系统设备’驱动的安装
- Cilium 官方文档翻译(7) IPAM Kubernetes Host模式
- nodejs前端+后端
- html 超链接标签 a 的基本用法
- 【渝粤题库】广东开放大学 互联网金融本 形成性考核
- web端网页变为灰色
- java课题背景,办公自动化系统论文-课题研究的背景和意义及国内外发展状况.doc...
热门文章
- Android应用内社区SDK技术架构浅析
- 测试无线网网速软件,技术员教你解决怎么测试无线网络网速
- 转:移动互联:没有新故事没有新大佬
- iphone苹果二手手机购买前必看
- snap install cloudcompare碰到问题
- 基于Jsoup的Java爬虫-爬取必应壁纸网站的壁纸(Java静态壁纸爬虫实例)
- oracle12c用plsql连不上,PLSQL连接oracle12c
- 9月最新版 H5移动棋牌游戏联运推广平台移动游戏系统源代码下载(带安装说明)
- 服务器使用固态硬盘的优缺点
- node 单元测试_如何在Node中模拟对单元测试的请求