鲁西化工的领导排名:用ViewFlipper实现滑屏,带有层叠转屏效果
来源:百度文库 编辑:九乡新闻网 时间:2024/05/15 10:04:54
package com.android.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.OnGestureListener;
import android.view.View.OnTouchListener;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
public class CascadeViewFlipper extends ViewFlipper implements OnTouchListener, OnGestureListener{
private final Context context;
private GestureDetector gestureDetector;
protected int FLING_MIN_DISTANCE = 100; //横向滑动多少后才能转屏
GestureDetector mGestureDetector; //监听事件
int currentIndex = 0; //初始化在第一个位置
public CascadeViewFlipper(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
gestureDetector = new GestureDetector(this);
setOnTouchListener(this); //对viewflipper设定监听事件,很多人都忘记写要注意
setLongClickable(true);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
/**
* 向左滑动
*/
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
if (currentIndex < getChildCount() - 1){
currentIndex++;
setInAnimation(AnimationUtils.loadAnimation(context, R.anim.cascade_left_in));//设置向左滑动进来页面的动画效果
setOutAnimation(AnimationUtils.loadAnimation(context, R.anim.cascade_left_out));//设置向左滑动页面出去的动画效果
showNext();
}
return true;
}
/**
* 向右滑动
*/
else if (e1.getX() - e2.getX() < -FLING_MIN_DISTANCE) {
if (currentIndex > 0){
currentIndex--;
setInAnimation(AnimationUtils.loadAnimation(context, R.anim.cascade_right_in)); //设置向右滑动进来页面的动画效果
setOutAnimation(AnimationUtils.loadAnimation(context, R.anim.cascade_right_out)); //设置向右滑动页面出去的动画效果
showPrevious();
}
return true;
}
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
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;
}
}
以下是xml代码:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:persistentDrawingCache="animation"
android:flipInterval="1000"
android:inAnimation="@anim/scale_small_in"
android:outAnimation="@anim/scale_small_out">
android:background="#FFFFFF"
android:id="@+id/TextView_next1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:background="#FF0000"
android:id="@+id/TextView_next2"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:background="#00FF00"
android:id="@+id/TextView_next3"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
cascade_left_in.xml的代码,向左边滑进的效果
android:duration="1000"/>
cascade_left_out.xml的代码,向左边滑出的效果
android:fromXScale="1.0" android:toXScale="0.5"
android:fromYScale="1.0" android:toYScale="0.5"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="1000"/>
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="1000"
/>
cascade_right_in.xml的代码,向右边滑进的效果
android:fromXScale="0.5" android:toXScale="1.0"
android:fromYScale="0.5" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="1000"/>
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="0" android:toAlpha="1.0"
android:duration="1000"
/>
cascade_right_out.xml的代码,向右边滑出的效果
android:duration="1000"/>
Activity的代码:
package com.android.view;
import android.app.Activity;
import android.os.Bundle;
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_flipper);
}
}
用ViewFlipper实现滑屏,带有层叠转屏效果
第82课:制作层叠照片效果
用PowerPoint实现淡入淡出效果
VC中实现带有背景位图的树型控件
实现动态模糊效果
PS实现水彩效果 - Photoshop
Animation动画效果的实现
让UI开发轻松而快乐,用SonicUI引擎实现常见UI效果 - VC知识库文章
div+css - Firefox和IE浏览器兼容问题 - 用CSS实现cellSpacing属性效果
Android 实现书籍翻页效果----完结篇
Android 实现书籍翻页效果----升级篇
PowerPoint 2007中实现滚动字幕效果
实现无刷新DropDownList联动效果
Android手势识别ViewFlipper触摸动画
教你如何用flash实现鞭炮的爆炸效果
VB,VB编程实现图像的漂亮效果,珠江路在线
非常简单让win7实现3D切换页面效果
如何在PS中实现暗角效果
jQuery ajax实现顶一下,踩一下效果
Dreamweaver轻松实现网页中透明Flash效果
怎么实现文字环绕图片/多媒体的效果
PPT课件中实现"时针"的旋转效果
Premiere中马赛克追踪效果的二种实现方法
用powerpoint2010完美实现PPT转视频