전이

2012-11-08 3 views
3
내가되는 SplashScreen 2 개 이미지 사이의 애니메이션을 설정하려면 다음 코드를 사용하고

안드로이드 :전이

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.splash); 

    // Show A Transitions for Splash image here. 
    TransitionDrawable transition = (TransitionDrawable) getResources() 
      .getDrawable(R.drawable.splash_animation); 

    //Set interval for the transition between two image. 
    transition.startTransition(5000); 

    //Fetch imageView from your layout and apply transition on the same. 

    ImageView imageView= (ImageView) findViewById(R.id.splash_image); 
    imageView.setImageDrawable(transition); 
} 

내 splash.xml은 다음과 같습니다

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:scaleType="fitXY" 
     android:id="@+id/splash_image" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:src="@drawable/img_1" /> 
</RelativeLayout> 

내 splash_animation.xml 파일은 다음과 같습니다

<?xml version="1.0" encoding="utf-8"?> 
<transition xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/img_1"></item> 
    <item android:drawable="@drawable/img_2"></item> 
</transition> 

변환이 잘 작동하지만 3 개의 이미지도 만들 수 있는지 알고 싶었습니다. splash_animation에서 세 번째 이미지를 추가하려고 시도했지만 첫 번째 이미지에 대해서만 전환이 완료되었습니다. 원하는만큼 많은 이미지를 얻으려면 어떻게해야합니까?

답변

1

TransitionDrawable의 배열을 넣습니다.

List<TransitionDrawable>array = new ArrayList<TransitionDrawable>(); 

TransitionDrawable transition1 = (TransitionDrawable) getResources() 
      .getDrawable(R.drawable.splash_animation1); // first,second image 

TransitionDrawable transition2 = (TransitionDrawable) getResources() 
      .getDrawable(R.drawable.splash_animation2); // third,fourth image 

array.add(transition1); 
array.add(transition2); 
// call array 
for(TransitionDrawable transition :array){ 
transition.start(5000); 
} 
ImageView imageView= (ImageView) findViewById(R.id.splash_image); 
imageView.setImageDrawable(transition[0]); // if transition[0] is finished setImageDrawable(transition[1]); 
+0

배열을 호출하는 방법 .... ??/ –

+0

foreach (트랜잭션 트랜잭션 : 배열) transition.startTransition (5000); – Yahor10

+0

나는 이런 식으로 코드를 업데이트 할 수 있습니다 ... –

관련 문제