一 ,、 利用View自身的setAnimation來實現(xiàn)動畫(TextView、imageView,、ListView等都可以實現(xiàn))
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代碼:
- <span style="FONT-WEIGHT: normal"><?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas./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></span>
關(guān)鍵代碼:
- txtview.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
二,、ViewFlipper實現(xiàn)左右滑動效果轉(zhuǎn)載自(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實現(xiàn)左右滑動效果
- * @Description: Android實現(xiàn)左右滑動效果
-
- * @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中實現(xiàn)自定義Animation。自定義的Animation是以XML格式定義的,,定義好的XML文件存放在res/anim中,。
一般的Animation有以下四種類型:
1. Alpha:漸變透明度動畫效果
2. Scale:漸變尺寸伸縮動畫效果
3. Translate:畫面轉(zhuǎn)換位置移動動畫效果
4. Rotate:畫面轉(zhuǎn)換位置移動動畫效果
push_left_in.xml文件中代碼:
- <span style="FONT-WEIGHT: normal"><?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas./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></span>
push_left_out.xml文件中代碼:
- <span style="FONT-WEIGHT: normal"><?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas./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></span>
push_right_in.xml文件中代碼:
- <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas./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文件中代碼:
- <span style="FONT-WEIGHT: normal"><?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas./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></span>
|