- 浏览: 916034 次
- 性别:
- 来自: 湖北—》上海
最新评论
-
miketwais:
janyee2012 写道楼主在不,请问下面这句配置在disc ...
cas实现单点登录,登出(java和php客户端) -
f5528710:
IOS 利用UIScrollview实现滑动筛选 -
卡卡欧克:
php 客户端 不能和 java 客户端 同时登录 怎么办
cas实现单点登录,登出(java和php客户端) -
duanyutian:
大神 我加0 或者\n都没有用 和mina的通信有没有注意点 ...
ios socket AsyncSocket使用 -
周聪龙:
楼主,我按照你的那个配置之后,怎么反而不能登录了,我以前只是简 ...
cas 3.4登录成功返回用户更多信息
1)View切换的控件—ViewFlipper介绍
ViewFilpper类继承于ViewAnimator类。而ViewAnimator类继承于FrameLayout。
查看ViewAnimator类的源码可以看出此类的作用主要是为其中的View切换提供动画效果。该类有如下几个和动画相关的方法。
setInAnimation:设置View进入屏幕时候使用的动画。该方法有两个重载方法,即可以直接传入Animation对象,也可以传入定义的Animation文件的resourceID。
setOutAnimation:设置View退出屏幕时候使用的动画。使用方法和setInAnimation方法一样。
showNext:调用该方法可以显示FrameLayout里面的下一个View。
showPrevious:调用该方法可以来显示FrameLayout里面的上一个View。
查看ViewFlipper的源码可以看到,ViewFlipper主要用来实现View的自动切换。该类提供了如下几个主要的方法。
setFilpInterval:设置View切换的时间间隔。参数为毫秒。
startFlipping:开始进行View的切换,时间间隔是上述方法设置的间隔数。切换会循环进行。
stopFlipping:停止View切换。
setAutoStart:设置是否自动开始。如果设置为“true”,当ViewFlipper显示的时候View的切换会自动开始。
一般情况下,我们都会使用ViewFilpper类实现View的切换,而不使用它的父类ViewAnimator类。
2)实现滑动—GestureDetector介绍
如果想要实现滑动翻页的效果,就要了解另外一个类:android.view.GestureDetector类。GestureDetector类中可以用来检测各种手势事件。该类有两个回调接口,分别用来通知具体的事件。
GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于PC上面的鼠标的双击事件。
GestureDetector.OnGestureListener:用来通知普通的手势事件,该接口有六个回调方法,具体的可以查看API。这里想要实现滑动的判断,就需要用到其中的onFling()方法。
3)具体的实现
下面的代码片段详细说明了如何实现滑动翻页。
- public class ViewFlipperActivity extends Activity implements OnGestureListener {
- private static final int FLING_MIN_DISTANCE = 100;
- private ViewFlipper flipper;
- private GestureDetector detector;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.viewflipper);
- // 注册一个GestureDetector
- detector = new GestureDetector(this);
- flipper = (ViewFlipper) findViewById(R.id.ViewFlipper);
- ImageView image1 = new ImageView(this);
- image1.setBackgroundResource(R.drawable.image1);
- // 增加第一个view
- flipper.addView(image1);
- ImageView image2 = new ImageView(this);
- image2.setBackgroundResource(R.drawable.image2);
- // 增加第二个view
- flipper.addView(image2);
- }
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- // 将触屏事件交给手势识别类处理
- return this.detector.onTouchEvent(event);
- }
- @Override
- public boolean onDown(MotionEvent e) {
- return false;
- }
- @Override
- public void onShowPress(MotionEvent e) {
- }
- @Override
- public boolean onSingleTapUp(MotionEvent e) {
- return false;
- }
- @Override
- public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
- float distanceY) {
- return false;
- }
- @Override
- public void onLongPress(MotionEvent e) {
- }
- @Override
- public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
- float velocityY) {
- if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
- //设置View进入和退出的动画效果
- this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,
- R.anim.left_in));
- this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
- R.anim.left_out));
- this.flipper.showNext();
- return true;
- }
- if (e1.getX() - e2.getX() < -FLING_MIN_DISTANCE) {
- this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,
- R.anim.right_in));
- this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
- R.anim.right_out));
- this.flipper.showPrevious();
- return true;
- }
- return false;
- }
- }
在这段代码里,创建了两个IamgeView(用来显示图片),加入到了ViewFlipper中。程序运行后,当用手指在屏幕上向左滑动,会显示前一个图片,用手指在屏幕上向右滑动,会显示下一个图片。实现滑动切换的主要代码都在onFling()方法中,用户按下触摸屏,快速移动后松开,就会触发这个事件。在这段代码示例中,对手指滑动的距离进行了计算,如果滑动距离大于100像素,就做切换动作,否则不做任何切换动作。
可以看到,onFling()方法有四个参数,e1和e2上面代码用到了,比较好理解。参数velocityX和velocityY是做什么用的呢?velocityX和velocityY实际上是X轴和Y轴上的移动速度,单位是像素/秒。结合这两个参数,可以判断滑动的速度,从而做更多的处理。
为了显示出滑动的效果,这里调用了ViewFlipper的setInAnimation()和setOutAnimation()方法设置了View进入和退出的动画。
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"
android:duration="500"/>
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="500" />
</set>
left_out.xml代码
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="500"/>
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="500" />
</set>
发表评论
-
Gradle多渠道apk打包自动重命名
2018-01-20 21:22 1430使用友盟多渠道发布apk,使用gradle自动打apk是十 ... -
android5以上webview无法同步cookie的问题
2017-07-24 15:30 2278最近在做android webView中加载h5游戏,发现部 ... -
eclipse 中使用ARR
2016-08-09 17:51 2713最近需要在公司应用上集成阿里反馈功能,然而阿里sdk只提供a ... -
fragment中嵌套使用viewpager不显示的解决方案
2015-11-17 11:08 8811private void InitViewPager(Vi ... -
android actionbar 学习
2014-01-15 15:34 38091.Action Bar 介绍 我们能在应用中看见的a ... -
android 开源框架xUtils
2014-01-13 11:46 31157git地址:https://github.com/wyouf ... -
不使用ActionBarSherlock 兼容2.x的actionbar
2014-01-13 11:35 1821当需要在 android 7或更高的版本使用 ActionB ... -
ListView 含有多个Item布局时,convertView的缓存与重用
2013-12-26 12:03 3771最近有需求需要在listView中载入不同的listIte ... -
android 图片加载和缓存开源项目 Picasso
2013-12-13 10:54 26640Picasso – Android系统的图片下载和缓存类 ... -
Android、iPhone和Java三个平台一致的加密方法
2013-11-25 22:52 3881先前一直在做安卓,最近要开发iPhone客户端,这其中遇到的 ... -
android导入已有的外部数据库db
2013-10-14 17:16 9569我们平时见到的android数据库操作一般都是在程序开始时创 ... -
Android 连接Wifi和创建Wifi热点
2013-09-26 21:47 12871上代码: MainActivity.java ... -
android 获取签名信息
2013-08-27 16:30 2925/** * 获取签值信息 * @author allen ... -
android ndk的使用 jni
2013-08-25 14:53 1876最近android项目中底层加密方法需要用 ... -
Android 布局优化 java.lang.StackOverflowError
2013-05-28 19:41 3017最近做的一 ... -
android 广播的使用
2013-04-23 20:09 1139在Activity中,注册广播的一个Demo。 总共分3步 ... -
android 实现背景滑动效果
2012-09-25 11:45 4111效果类似网易新闻的新闻栏目切换时背景滑动效果 实现代码如下 ... -
android 实现圆角listview
2012-09-24 11:26 3128无论是网站,还是APP,人们都爱看一些新颖的视图效果。直 ... -
Apndroid Push Notification实现安卓推送
2012-08-16 13:11 4929Apndroid Push Notificati ... -
android 调用拨打电话和发送短信的功能
2012-08-14 09:47 19941、拨打电话 Intent intent=new In ...
相关推荐
实现左右滑动效果的关键在于监听用户的触摸事件并处理滑动手势。这通常需要自定义一个GestureDetector,来检测用户在屏幕上左右滑动的手势。以下是一个简单的步骤: 1. **创建GestureDetector对象**: 首先,你...
在这个“最简单的ViewFlipper实现图片跟随手势滑动”的教程中,我们将深入探讨如何通过源码和工具来创建一个用户可以通过手势左右滑动来切换图片的应用。 首先,我们要了解ViewFlipper的基本用法。ViewFlipper继承...
在Android开发中,ViewFlipper是一个非常实用的控件,用于在多个视图之间进行切换,通常用于实现页面滑动效果。ViewFlipper是ViewAnimator的子类,它提供了自动翻页、手动翻页以及动画过渡等特性。下面将详细探讨...
在Android开发中,ViewFlipper是一个非常有用的布局组件,它允许开发者轻松地实现在多个视图之间进行滑动切换的效果。这种效果常见于各种应用程序,如轮播图、页面导航等。下面我们将深入探讨如何利用ViewFlipper...
总结,`ViewFlipper`是Android中实现滑动效果的强大工具,通过灵活地配置动画、定时器和事件监听,我们可以轻松创建出丰富的用户界面。在实际项目中,结合其他组件和动画库,`ViewFlipper`可以满足各种滑动切换的...
Android提供了多种内置的动画,如`R.anim.fade_in`和`R.anim.fade_out`用于淡入淡出效果,或者`R.anim.slide_in_left`和`R.anim.slide_out_right`用于左右滑动效果。在代码中设置动画: ```java public class ...
在Android开发中,ViewFlipper是一个非常实用的控件,它允许我们轻松地在多个视图之间进行切换,常用于实现类似轮播图或者卡片左右滑动的效果。本篇文章将详细解析如何使用ViewFlipper来实现左右切换的功能,并结合...
本篇将深入探讨如何利用ViewFlipper组件和GestureDetector类实现左右滑动切换视图的效果,这在主页面或多个内容区域展示的场景中非常常见。 ViewFlipper是Android提供的一个布局容器,它可以方便地在多个子视图之间...
在Android开发中,ViewFlipper是一个非常有用的布局组件,它允许开发者轻松地在多个视图之间切换,并且可以添加各种动画效果,使用户界面更加生动和互动。本篇将深入探讨如何利用ViewFlipper实现Switch动画特效,...
4. **设置动画**:为了实现平滑的滑动效果,我们需要为ViewFlipper添加切换动画。这可以通过创建两个Animation对象(一个向左,一个向右)实现,然后将它们分别设置为in和out动画。 ```java // 创建向左的动画 ...
在Android开发中,为了提供优秀的用户体验,经常需要实现图片的左右滑动切换功能,这通常是通过ViewPager或ViewFlipper组件来完成的。这两个组件都属于Android SDK中的布局管理器,可以方便地展示多个视图并支持用户...
当设置动画后,ViewFlipper能够自动在这些子视图间进行切换,给用户带来流畅的滑动效果。 **一、添加ViewFlipper到布局** 在XML布局文件中,你可以像添加其他视图一样添加ViewFlipper。例如: ```xml <androidx....
说到android的左右滑动效果我们可以说是在每个应用上面都可以看到这样的效果,不管是微博,还是QQ等。实现左右滑动的方式很多,有ViewPaer(不过这个和需要android-support-v4.jar的支持),自定义实现Viewgroup,...
在本压缩包中,我们可能会找到相关的源代码示例,以展示如何在应用程序中有效地使用ViewFlipper来实现水平滑动效果。 【描述】"安卓Android源码——ViewFlipper水平滑动.rar"可能包含了一个Android项目,该项目专注...
本文将深入探讨如何使用ViewFlipper来实现滑动轮播效果,并结合实际示例进行详细讲解。 首先,我们需要了解ViewFlipper的基本概念。ViewFlipper是LinearLayout的子类,它可以包含多个子视图,并自动管理这些子视图...
同时,我们可以设置`ViewFlipper`的滑动监听器,实现平滑的滑动效果。 在`TabHost`中实现背景图片自动切换的功能,可以通过定时器和`ImageView`的`setImageResource()`方法来实现。设定一个定时任务,每隔一段时间...
【标题】"Android高级应用源码-ViewFlipper水平滑动.zip" 提供了一个关于在Android平台上使用ViewFlipper实现水平滑动效果的示例。ViewFlipper是Android SDK中的一个视图容器,它允许我们在两个或多个视图之间进行...
本项目“Android应用源码之Gallery+ImageSwitcher+ViewFlipper实现手机查看壁纸效果”就提供了这样一个功能的实现,通过集成Gallery、ImageSwitcher和ViewFlipper三个组件,为用户提供流畅的图片切换体验。...
本示例"Android ViewFlipper水平滑动Demo"着重展示了如何利用ViewFlipper实现水平滑动效果。下面将详细讲解ViewFlipper的使用及其水平滑动的实现方式。 **1. ViewFlipper介绍** ViewFlipper是Android SDK中的一个...