android 애니메이션 전환 (슬라이딩 효과) 실례
22215 단어 android
구현 단계:
1. 프로젝트인터페이스 만들기, 내가 선택한 버전은 안드로이드3.0,
Application Name: Animation
Package Name: zf.itcast.animation
Create Activity:MainActivity
2.main.xml에서 두 개의Activity를 정의하고 스타일을 설정합니다
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- -->
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:onClick="openActivity"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/first_acvivity"
/>
</LinearLayout>
<!-- -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#339900"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/second_acvivity"
/>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
3. 클래스MainActivity에서 애니메이션 전환 방법 설정
package zf.itcast.animation;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
public class MainActivity extends Activity {
// ViewFlipper
private ViewFlipper viewFlipper;
//
private float startX;
//
private Animation enter_lefttoright;
//
private Animation exit_lefttoright;
//
private Animation enter_righttoleft;
//
private Animation exit_righttoleft;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//
enter_lefttoright = AnimationUtils.loadAnimation(this, R.anim.enter_lefttoright);
exit_lefttoright = AnimationUtils.loadAnimation(this, R.anim.exit_lefttoright);
enter_righttoleft = AnimationUtils.loadAnimation(this, R.anim.enter_righttoleft);
exit_righttoleft = AnimationUtils.loadAnimation(this, R.anim.exit_righttoleft);
viewFlipper = (ViewFlipper)findViewById(R.id.viewFlipper);
}
/**
* <p> : </p>
* @author
* @date 2012-5-30
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
// ,MotionEvent.ACTION_DOWN
if(event.getAction() == MotionEvent.ACTION_DOWN) {
//
startX = event.getX();
// ,
} else if(event.getAction() == MotionEvent.ACTION_UP) {
// ,
float endX = event.getX();
// ,
if(endX > startX) {
//
viewFlipper.setInAnimation(enter_lefttoright);
//
viewFlipper.setOutAnimation(exit_lefttoright);
//
viewFlipper.showNext();
// ,
} else if (endX < startX) {
viewFlipper.setInAnimation(enter_righttoleft);
viewFlipper.setOutAnimation(exit_righttoleft);
//
viewFlipper.showPrevious();
}
return true;
}
return super.onTouchEvent(event);
}
/**
* <p> : Activity</p>
* @author
* @date 2012-5-30
* @param
* @return void
*/
public void openActivity(View v){
Intent intent = new Intent(this, OtherActivity.class);
startActivity(intent);
// , anim enteralpha( ) exitalpha( ) ( : xml )
// , enteralpha exitalpha
this.overridePendingTransition(R.anim.enteralpha,R.anim.exitalpha);
}
}
4.res 폴더 아래에 anim 폴더를 만들고 4개의 애니메이션 효과를 새로 만듭니다. 각각:enterlefttoright.xml(왼쪽에서 오른쪽으로 효과), exitlefttoright(왼쪽에서 오른쪽으로 애니메이션 종료), enterrighttoleft (오른쪽에서 왼쪽으로 애니메이션 들어가기),exitrighttoleft(애니메이션을 오른쪽에서 왼쪽으로 종료) 코드는 다음과 같습니다.
enter_lefttoright.xml (왼쪽에서 오른쪽으로 들어가는 효과)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<!-- x -->
<translate
android:fromXDelta="-100%p"
android:toXDelta="0"
android:duration="2000"
/>
</set>
exit_lefttoright(왼쪽에서 오른쪽으로 애니메이션 종료)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<!-- x -->
<translate
android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="2000"
/>
</set>
enter_righttoleft (오른쪽에서 왼쪽으로 애니메이션 들어가기)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<!-- x -->
<translate
android:fromXDelta="100%p"
android:toXDelta="0"
android:duration="2000"
/>
</set>
exit_righttoleft (오른쪽에서 왼쪽으로 애니메이션 종료)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<!-- x -->
<translate
android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="2000"
/>
</set>
5.string에 관하여.xml 파일
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello"> Activity</string>
<string name="app_name">Animation</string>
<string name="new_window"> </string>
<string name="new_activity"> Activity</string>
<string name="first_acvivity"> </string>
<string name="second_acvivity"> </string>
</resources>
6. 성공, 실행은 효과를 보자~~~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.