- 浏览: 139643 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
zhonglunshun:
恩,这样子阿,我去试试,多谢大师指点。
linux 下的eclipse支持GBK -
glassprogrammer:
复杂化了吧,不用执行任何命令,直接在eclipse中设置编码的 ...
linux 下的eclipse支持GBK -
Function:
用右手 alt + /
Eclipse 的Alt+/有问题或者不好用 -
ahack:
在windows下我一般设置成alt+a左手就能搞定,何必两只 ...
Eclipse 的Alt+/有问题或者不好用 -
houyujiangjun:
"每一次都逼迫我不得不重装系统"快捷键冲突 ...
Eclipse 的Alt+/有问题或者不好用
说到android的左右滑动效果我们可以说是在每个应用上面都可以看到这样的效果,不管是微博,还是QQ等。实现左右滑动的方式很多,有ViewPaer(不过这个和需要android-support-v4.jar的支持),自定义实现Viewgroup,gallery等都可以达到这种效果。这里做下ViewFliper实现左右滑动的效果。
以下会会用到的技术有:
1、ViewFlipper
2、GestureDetector
3、Animation
第一次在iteye写博文,本人又是菜鸟,不喜勿喷,虚心听取建议。
原理:向左向右滑动主要是依赖手势来控制,手势向右滑动就调用 viewFlipper.showNext();方法,同理,向左滑动就会去调用viewFlipper.showPrevious();方法。
话不多少,直接上代码。
main_activity.xml:
下面是MainActivity内容:
在res文件夹下新建anim文件夹,在里面建4个animation动画的xml文件,具体代码如下:
Left_in.xml:
right_in.xml:
right_out.xml:
以下会会用到的技术有:
1、ViewFlipper
2、GestureDetector
3、Animation
第一次在iteye写博文,本人又是菜鸟,不喜勿喷,虚心听取建议。
原理:向左向右滑动主要是依赖手势来控制,手势向右滑动就调用 viewFlipper.showNext();方法,同理,向左滑动就会去调用viewFlipper.showPrevious();方法。
话不多少,直接上代码。
main_activity.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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ViewFlipper android:id="@+id/viewFlipper" android:layout_width="fill_parent" android:layout_height="fill_parent"></ViewFlipper> </RelativeLayout>
下面是MainActivity内容:
package com.zls.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.view.Window; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.ViewFlipper; /** * 这个程序的功能:手势滑动 * @author zls * */ public class MainActivity extends Activity implements OnGestureListener{ private Animation left_in,left_out,right_in,right_out; private ViewFlipper viewFilpper; private GestureDetector detector; //手势监听 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //动画效果 left_in = AnimationUtils.loadAnimation(this, R.anim.left_in); left_out = AnimationUtils.loadAnimation(this, R.anim.left_out); right_in = AnimationUtils.loadAnimation(this, R.anim.right_in); right_out = AnimationUtils.loadAnimation(this, R.anim.right_out); //获得viewFlipper viewFilpper = (ViewFlipper) findViewById(R.id.viewFlipper); detector = new GestureDetector(this); //给viewFlipper添加ImageView viewFilpper.addView(getImageView(R.drawable.lufei)); viewFilpper.addView(getImageView(R.drawable.namei)); viewFilpper.addView(getImageView(R.drawable.solong)); } //touch事件交给手势处理 @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub return this.detector.onTouchEvent(event); } public ImageView getImageView(int id) { ImageView imageView = new ImageView(this); imageView.setImageResource(id); return imageView; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @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(e2.getX()-e1.getX()<-120) { viewFilpper.setInAnimation(left_in); viewFilpper.setOutAnimation(left_out); viewFilpper.showNext(); return true; } else if(e2.getX()-e1.getX()>120){ viewFilpper.setInAnimation(right_in); viewFilpper.setOutAnimation(right_out); viewFilpper.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; } }
在res文件夹下新建anim文件夹,在里面建4个animation动画的xml文件,具体代码如下:
Left_in.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="500"/> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="500"/> </set> Left_out.xnl: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%p" android:toXDelta="-100%p" android:duration="500"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="500"/> </set>
right_in.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%p" android:toXDelta="0%p" android:duration="500"/> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="500"/> </set>
right_out.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%p" android:toXDelta="100%p" android:duration="500"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="500"/> </set>
- ViewFlipper.zip (1.7 MB)
- 下载次数: 10
发表评论
-
android的handler机制
2016-04-26 14:32 0本文原创,花了半天时间理解handler,把自己的理解贡献出 ... -
android studio 使用代码混淆
2016-03-13 22:46 947对于一些安全性要求比较高的应用,需要使用代码混淆,andro ... -
android图片选取与调用系统裁剪
2016-01-27 15:14 4859话不多说,直接给出一个工具类,想要的拿去 packa ... -
Url出现非法参数异常
2016-01-26 13:13 4365访问网址出现:illegal character in sc ... -
环信学习笔记(一)
2015-11-12 14:59 732小弟 从今天开始学习环信的sdk,主要是学习里 ... -
asmack搜索添加好友
2015-10-28 15:06 1380在做添加好友之间,必须要对xmpp的好友订阅有一定的了解, ... -
asmack登录冲突(多端登录冲突)处理
2015-10-20 18:08 4399功能:登录冲突; 效果:弹出对话框,您的账号在xxx ... -
asmack断线重连实现
2015-10-20 17:32 2716在以前的asmack版本中,断线重连是需要我们自己做的,原理 ... -
如何监听到asmack联系人资料变动
2015-09-28 17:01 1412开发中的点滴,排版有点丑,博客也不常写,有点丑,别嫌弃。实 ... -
Android Studio 引用jar和so 文件
2015-02-28 17:33 4860Android Studio 引用jar和so 文件 ... -
Android Studio中获取sha1证书指纹数据的方法
2015-02-28 17:00 5136Android Studio 获取sha1 开发软件 ... -
android获取手机信息
2015-02-05 13:48 1176/** * 获取android当前可用内存大小 ... -
How to use OKHTTP to make a post request
2015-01-30 11:57 1366How to use OKHTTP to make a ... -
Xmpp发送自定义IQ包
2015-01-05 10:34 4300Xmpp发送自定义的iq包 因为需要做扩 ... -
android保存联系人到通讯录
2014-12-31 12:36 1658Android保存联系人 上一篇文章讲了如何获取所 ... -
android获取联系人所有信息
2014-12-30 14:53 3494只要是开发和手机通讯路有关的应用,总要学会获取联系人信息, ... -
SQLiteBindOrColumnIndexOutOfRangeException
2014-12-24 18:22 1618SQLiteBindOrColumnIndexOutOfR ... -
openfire在eclipse中的环境搭建和编译详解
2014-11-19 21:31 2299因为项目需要去研究了openfire,刚开始按照视频教程 ... -
我理解的互联网思维
2014-11-06 17:02 487我对互联网思维的理解 几个月前,出于好奇与兴趣,我接 ... -
This message is already in use.的解决办法
2014-11-06 14:38 5003This message is already in us ...
相关推荐
总结,"ViewPager和ViewFlipper实现图片左右滑动"主要是利用这两个组件的特性,结合数据适配和手势处理,创建一个可滑动浏览的图片导航界面。在实际项目中,开发者应根据需求选择合适的组件,比如,如果需要实现多页...
ViewFlipper,不妨把它看做一个容器吧,你可以把许多的View放在这个容器中,让它展示给...这个demo是一个手动滑动屏幕查看图片的粒子,共有10张图片,左右滑动可以查看图片,效果不是很好。其实用ViewPager会更好些。
在android上实现手势的识别也比较简单,可以实现OnTouchListener和OnGuestureListener接口, 然后在OnTouch函数中注册GestureDetector来判别手势动作, http://wang-peng1.iteye.com/blog/572886 ...
在Android开发中,ViewFlipper是一个非常实用的控件,用于在多个视图之间进行平滑切换,常用于实现类似轮播图或者横向滑动页面的效果。本教程将详细介绍如何利用ViewFlipper来实现横屏滑动,以及屏幕局部滑动的实现...
在"ViewFlipper+AsyncImageLoader实现页面滑动及页面图片异步加载"这个主题中,我们将深入探讨如何结合这两者来创建一个高性能的用户界面。 首先,`ViewFlipper`是Android SDK中的一个视图容器,它可以包含多个子...
本篇文章将深入探讨如何使用`ViewFlipper`来实现图片轮播,并添加手势滑动切换图片的功能。 首先,`ViewFlipper`是`ViewGroup`的一个子类,它可以包含多个子视图(例如`ImageView`),并能通过设置动画效果在这些子...
在Android开发中,ViewFlipper是一个非常有用的布局组件,它允许开发者轻松地实现视图间的切换,例如在图片轮播、广告展示等场景下。本文将深入探讨如何使用ViewFlipper来实现滑动轮播效果,并结合实际示例进行详细...
综上所述,Android中的ViewFlipper提供了一种简单有效的方式实现页面滑动切换。通过组合不同的动画效果、手动切换、自动翻页以及手势识别,开发者可以创建出丰富多样的用户界面。在实际项目中,可以根据需求灵活运用...
`TabHost` 用于创建底部的标签栏,而 `ViewFlipper` 可以实现页面之间的滑动切换。接下来,我们将深入探讨这两个组件以及如何将它们结合使用来实现滑动翻页效果。 `TabHost` 是Android SDK提供的一种容器,它可以...
在这个场景中,我们将探讨如何利用ViewFlipper来实现左右滑动的效果。 首先,我们需要理解ViewFlipper的基本概念。ViewFlipper是LinearLayout的子类,它可以包含多个子视图(views),并且能够自动或手动在这些子...
以上就是使用ViewFlipper实现界面滑动切换的基本步骤,结合实际需求,你可以进一步定制动画效果,或者添加更多的交互元素,如指示器、手势识别等,以提升用户体验。在项目`MyViewFlipper`中,你将能看到具体的实现...
本示例“android viewflipper 图片滑动demo”正是这样一个应用场景,用于展示如何用ViewFlipper实现在应用首次启动时的图片引导页面。 首先,我们需要了解ViewFlipper的基本概念。ViewFlipper是ViewGroup的一个子类...
本教程将详细介绍如何利用ViewFlipper实现图片的左右滑动、双击放大以及图片旋转功能。 1. **ViewFlipper基本使用** ViewFlipper继承自ViewGroup,可以包含多个子视图(例如ImageView)。默认情况下,ViewFlipper...
在Android开发中,ViewFlipper是一个非常有用的布局控件,它允许我们轻松地实现滑动翻页的效果。这个示例将向我们展示如何在应用程序中使用ViewFlipper来创建一个动态翻页界面,使得用户可以通过手势或编程方式切换...
在Android开发中,实现手势滑动图片浏览是一种常见的需求,特别是在设计用户界面时,如相册应用或展示产品图片的场景。本教程将详细介绍如何利用`ViewFlipper`组件结合手势识别来创建一个平滑的手势滑动图片浏览功能...
通过监听ViewFlipper的动画事件,我们可以实现左右滑动来切换图片,模拟图片浏览的效果。 实现这个功能的步骤如下: 1. **获取SD卡图片**:使用`Environment.getExternalStorageDirectory()`获取SD卡根目录,再...
在Android开发中,创建动态和交互丰富的用户界面是至关重要的,`ViewFlipper`和`ViewPager`组件就提供了这样的功能,让开发者能够实现界面之间的滑动切换效果。这两个组件各有特点,适合不同的应用场景。 首先,`...
总结一下,Android中的ViewFlipper组件为开发者提供了一种简单且高效的方式来实现视图之间的滑动切换效果。通过合理设置动画和控制切换时机,我们可以创建出丰富的用户交互体验。在实际项目中,你可以根据需求调整...
ViewFlipper是Android SDK提供的一种布局管理器,主要用于在多个视图之间进行平滑的切换,常用于实现滑动翻页效果,如相册、广告轮播等场景。本篇文章将详细探讨如何利用ViewFlipper来实现滑屏切换View的功能。 ...