关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现。接下来就让我们开始实现这种效果。

接下来我们看一下程序结构图:

MainActivity文件中代码:

package com.android.flip;import android.app.Activity;import android.os.Bundle;import android.view.GestureDetector;import android.view.MotionEvent;import android.view.View;import android.view.GestureDetector.OnGestureListener;import android.view.animation.AnimationUtils;import android.widget.ImageView;import android.widget.ViewFlipper;/** * Android实现左右滑动效果 * @Description: Android实现左右滑动效果 * @File: MainActivity.java * @Package com.android.flip * @Author Hanyonglu * @Date 2012-02-12 上午10:44:04 * @Version V1.0 */public class MainActivity extends Activity implements OnGestureListener {  private ViewFlipper flipper;  private GestureDetector detector;    /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);        detector = new GestureDetector(this);    flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper1);    flipper.addView(addImageView(R.drawable.one));    flipper.addView(addImageView(R.drawable.two));    flipper.addView(addImageView(R.drawable.three));    flipper.addView(addImageView(R.drawable.four));    flipper.addView(addImageView(R.drawable.five));  }    private View addImageView(int id) {    ImageView iv = new ImageView(this);    iv.setImageResource(id);    return iv;  }    @Override  public boolean onTouchEvent(MotionEvent event) {    // TODO Auto-generated method stub    return this.detector.onTouchEvent(event);  }    @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 (e1.getX() - e2.getX() > 120) {      this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));      this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));      this.flipper.showNext();      return true;    } else if (e1.getX() - e2.getX() < -120) {      this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));      this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));      this.flipper.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;  }}

布局界面相对比较简单,我们只需要加入ViewFlipper就可以,代码如下:

<?xml version="1.0" encoding="utf-8"?>     

为了使其滑动时有一定的特效,我们需要加入Animation效果,说到Animation,我们先看下如何在Android中实现自定义Animation。自定义的Animation是以XML格式定义的,定义好的XML文件存放在res/anim中。

一般的Animation有以下四种类型:

  1. Alpha:渐变透明度动画效果
  2. Scale:渐变尺寸伸缩动画效果
  3. Translate:画面转换位置移动动画效果
  4. Rotate:画面转换位置移动动画效果

push_left_in.xml文件中代码:

<?xml version="1.0" encoding="utf-8"?>       push_left_out.xml文件中代码: <?xml version="1.0" encoding="utf-8"?>     

push_right_in.xml文件中代码:

<?xml version="1.0" encoding="utf-8"?>     

push_right_out.xml文件中代码:

<?xml version="1.0" encoding="utf-8"?>     

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. Android输入框实时模糊搜索效果的示例代码
  2. android 带图片的文本框
  3. android开机启动流程简单分析
  4. Android使用Retrofit技术仿微信图片上传,可以选择多张图片拍照上
  5. Android安装应用后点击,打开.(Open)带来的问题及解决方式
  6. 常用的android studio插件
  7. Bluedroid的结构和代码分布
  8. android手机内部存储空间和外部存储空间获取代码
  9. Android(安卓)进程间通信实现原理分析

随机推荐

  1. Android(安卓)Framework中JNI调用
  2. 输入法软键盘搜索执行两次的解决方法
  3. Android系统中设置TextView的行间距(非行
  4. Android(安卓)3.0 r1 API中文文档(105)
  5. Style与Theme
  6. React Native 官方文档中文版(含最新Andr
  7. 随手记
  8. android SQLite应用
  9. Android核心模块及相关技术
  10. Android(安卓)统计图表引擎AChartEngine(