Android 手势滑动动画效果收集整理
2012-09-04 14:26
543 查看
一 、 利用View自身的setAnimation来实现动画(TextView、imageView、ListView等都可以实现)
java代码:public void UpdateViewContent(){ TextView txtview = (TextView)findViewById(R.id.content_view); txtview.setText(MyGetNextText()); txtview.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in)); }
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%" android:duration="300"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" /> </set>
关键代码:
txtview.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
二、ViewFlipper实现左右滑动效果转载自(http://www.cnblogs.com/hanyonglu/archive/2012/02/13/2349827.html)
java代码: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)); //添加Layout //flipper.addView(addView(R.layout.layout1)); //选择第几个view //viewFlipper.setDisplayedChild(0); } 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; } }
为了使其滑动时有一定的特效,我们需要加入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"?> <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实现手势滑动和简单动画效果
- Android Tab页面手势滑动切换以及动画效果
- Android进阶:实现android系统自带查看照片动画效果 类似Gallery手势滑动
- Android ViewPager多页面滑动切换以及动画效果
- [Android实例] ViewPager多页面滑动切换以及动画效果(精)
- Android三种左右滑动效果 手势识别
- [转]收集android上开源的酷炫的交互动画和视觉效果
- 【Android UI设计与开发】第18期:滑动菜单栏(三)SlidingMenu动画效果的实现
- Android ViewPager多页面滑动切换以及动画效果
- 手势检测实现相册的左右滑动(并加上移动与旋转的特效) 首先,activity_main.xml里,使用ViewFlipper组件(可使用动画控制多个组件之间的切换效果) <?xml version="
- <Android> 在Activity之间进行滑动效果的切换Anim动画
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果(一)
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- android手势操作滑动效果触摸屏事件处理
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果 .
- Android ViewPager多页面滑动切换以及动画效果
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果