关于滑动效果,在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开发利器之Data Binding Compiler
  2. Android应用程序组件Content Provider在
  3. android SQLite操作
  4. Porting WiFi drivers to Android
  5. RecyclerView正确打开分隔符
  6. Android Manifest之元素中文注释
  7. Android(安卓)UI组件学习
  8. Android(安卓)开发:(八)数据适配器 Adapter
  9. Android(安卓)图片异步下载及缓存--Multi
  10. Android(安卓)Intent and Intent-filter