您的位置:首页 > 移动开发 > Android开发

Android -- activity切换动画与页面切换动画

2013-09-18 16:58 295 查看
一、Activity切换动画
入口Activity:

public class MainActivity extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button) findViewById(R.id.button1);
}

public void takepage(View v){
Intent intent=new Intent(MainActivity.this,OtherActivity.class);
startActivity(intent);
this.overridePendingTransition(R.anim.enteralpha, R.anim.outralpha);
}
}


res/anim文件夹下特效文件:

enteralpha.xml:
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0"
android:toAlpha="1"
android:duration="5000"
>
</alpha>
outalpha.xml:
<?xml version="1.0" encoding="utf-8"?>
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0"
android:duration="5000"
>
</alpha>


二、页面切换特效:
入口ACtivity文件:
public class MainActivity extends Activity {

private ViewFlipper vf;
private float startx;
private float endx;
private Animation in_lefttoright;
private Animation in_righttoleft;
private Animation out_lefttoright;
private Animation out_righttoleft;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vf=(ViewFlipper) findViewById(R.id.vf);

in_lefttoright=AnimationUtils.loadAnimation(this, R.anim.in_lefttoright);
in_righttoleft=AnimationUtils.loadAnimation(this, R.anim.in_righttoleft);
out_lefttoright=AnimationUtils.loadAnimation(this, R.anim.out_lefttoright);
out_righttoleft=AnimationUtils.loadAnimation(this, R.anim.out_righttoleft);

}

@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_DOWN) {
startx= event.getX();
}else if (event.getAction()==MotionEvent.ACTION_UP) {
endx=event.getX();
if (endx>startx) {
vf.setInAnimation(in_righttoleft);
vf.setOutAnimation(out_lefttoright);
vf.showNext();//显示后一页
}else if (endx<startx) {
vf.setInAnimation(in_lefttoright);
vf.setOutAnimation(out_righttoleft);
vf.showPrevious();//显示前一页
}
return true;
}

return super.onTouchEvent(event);
}
}


特效文件:
in_lefttoright.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%p"
android:toXDelta="0"
android:duration="2000"
>
</translate>
in_righttoleft.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%p"
android:toXDelta="0"
android:duration="2000"
>
</translate>
out_lefttoright.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="2000"
>
</translate>
out_righttoleft.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="2000"
>
</translate>


本文出自 “天马行空” 博客,请务必保留此出处http://shaotao.blog.51cto.com/7606729/1298805
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: