关于滑动效果,在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,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"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" > <VIEwFlipper androID:ID="@+ID/VIEwFlipper1" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent"> </VIEwFlipper></linearLayout>
为了使其滑动时有一定的特效,我们需要加入Animation效果,说到Animation,我们先看下如何在AndroID中实现自定义Animation。自定义的Animation是以XML格式定义的,定义好的XML文件存放在res/anim中。
一般的Animation有以下四种类型:
Alpha:渐变透明度动画效果 Scale:渐变尺寸伸缩动画效果 Translate:画面转换位置移动动画效果 Rotate:画面转换位置移动动画效果push_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.1" androID:toAlpha="1.0" androID:duration="500" /></set> push_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.1" androID:duration="500" /></set>
push_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" androID:duration="500" /> <Alpha androID:fromAlpha="0.1" androID:toAlpha="1.0" androID:duration="500" /></set>
push_right_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.1" androID:duration="500" /></set>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
以上是内存溢出为你收集整理的Android实现图片左右滑动效果全部内容,希望文章能够帮你解决Android实现图片左右滑动效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)