ViewFlipper实现图片动画
2010-03-11 21:30
369 查看
ViewFlipper实现图片动画
写了一个demo,用ViewFlipper实现图片切换,现在想实现longpress就可以放大当前的图片。package com.android.sample;
import java.util.ArrayList;
import android.app.Activity;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;
public class ViewFlipperTest extends Activity implements OnTouchListener{
private GestureDetector gestureDetector;
private Animation slideLeftIn;
private Animation slideLeftOut;
private Animation slideRightIn;
private Animation slideRightOut;
private ViewFlipper viewFlipper;
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private int FP = ViewGroup.LayoutParams.FILL_PARENT;
private Matrix mSuppMatrix = new Matrix();
private Matrix mBaseMatrix = new Matrix();
private Matrix mDisplayMatrix = new Matrix();
private static boolean isZoom =false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gestureDetector = new GestureDetector(this, new MyGestureDetector());
viewFlipper = (ViewFlipper) findViewById(R.id.flipper);
slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);
LayoutParams params = new ViewGroup.LayoutParams(FP,FP);
int index =0;
for (Integer i : images){
ImageView iv = new ImageView(this);
iv.setImageResource(i);
iv.setScaleType(ImageView.ScaleType.FIT_CENTER);
viewFlipper.addView(iv, index, params);
index++;
}
viewFlipper.setOnTouchListener(this);
viewFlipper.setLongClickable(true);
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setOutAnimation(slideLeftOut);
viewFlipper.showNext();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
viewFlipper.showPrevious();
}
return false;
}
@Override
public void onLongPress(MotionEvent e){
ImageView iv = (ImageView) viewFlipper.getCurrentView();
//mSuppMatrix.postTranslate(2, 2);
mDisplayMatrix.set(mBaseMatrix);
mDisplayMatrix.postConcat(mSuppMatrix);
iv.setImageMatrix(mDisplayMatrix);
isZoom = true;
}
}
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return gestureDetector.onTouchEvent(event);
}
private Integer[] images = {
R.drawable.apple01, R.drawable.apple02,
R.drawable.apple03, R.drawable.apple04,
R.drawable.apple05, R.drawable.apple06
};
}
相关文章推荐
- iOS CATransition动画实现SDWebImage图片下载完成渐变动画
- Android Tween动画之RotateAnimation实现图片不停旋转
- Android通过动画实现图片重复放大和缩小
- iPhone 通过多张图片实现动画
- 多种方法实现H5网页图片动画效果;
- Android Tween动画之RotateAnimation实现图片不停旋转
- jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
- Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍
- android ViewPager实现 跑马灯切换图片+多种切换动画
- jQuery插件Slider Revolution实现响应动画滑动图片切换效果
- Android Tween动画之RotateAnimation实现图片不停旋转
- 实现图片转圈的动画layer addAnimation
- Mantis的附件图片实现预览/弹出层动画效果预览图片(LightBox2)的完美解决方案[Z]
- python实现爬取网站图片,视频动画到指定路径(附代码)
- 属性动画图片从上移动到屏幕中间,放大图片的二倍再缩小到原来,自定义圆实现倒计时,解析数据显示,点击条目实现js交互
- Android编程实现ImageView图片抛物线动画效果的方法
- JQuery移动动画实现点击按钮切换图片--JQuery基础
- 私有api实现删除图片时的动画
- Android Tween动画之RotateAnimation实现图片不停旋转
- android中类似于gif 实现图片的动画效果