0

異なる画像のカスタマイズされたアニメーションスライドショーを設定しようとしています。カスタマイズされたビューを使用して単一のイメージのアニメーションを設定することをお勧めします。今私は、私のarraylistのすべての画像のスライドショーを設定したいと思います。画像がお互いに表示されるように、今私は1つのカスタマイズされたビューを持っていますが、私は各画像のビューを増やす必要がありますか?何か案は?アンドロイド(SlideShow)で画像を使用したアニメーションシーケンスを作成する

カスタマイズされたビュー:

public class AnimationPhotoViewA extends ImageView { @Overridepublic void setImageBitmap(Bitmap bm) {super.setImageBitmap(bm);image= bm;}

活動:

 public class PhotoSyncActivity extends Activity implements AnimationListener { 
@Override 
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); 

    setContentView(R.layout.photo_sync_screen); 
    ArrayList<String> photoPaths = new ArrayList<String>(); 
    photoPaths = getAllPhotos(Environment.getExternalStorageDirectory(), 
      photoPaths); 
    images = new Bitmap[photoPaths.size()]; 
    Log.v(ACCESSIBILITY_SERVICE, "photo array!" + photoPaths); 

    apa1 = (AnimationPhotoViewA) findViewById(R.id.animation_viewA); 

      //START ANIMATION 

    animationmove = PhotoAnimationProcess.moveOne(this,apa1,animationmove); 

    File imgFile = new File(photoPaths.get(0)); 

    if (imgFile.exists()) 
    { 
     images[0] = decodeFile(imgFile); 
    } 
} 

@Override 
protected void onStart() { 
    // TODO Auto-generated method stub 
    super.onStart(); 


    // SET IMAGE IN THE VIEW 
    apa1.setImageBitmap(resizedimage); 

} 
private void addPicture() { 
    // TODO Auto-generated method stub 

} 



public void onAnimationStart(Animation animation) 
{ 
    // TODO Auto-generated method stub 

} 

public void onAnimationEnd(Animation animation) 
{ 
    // TODO Auto-generated method stub 

    switch (animationmove) 
    { 
    case move1: 
     animationmove = PhotoAnimationProcess.moveOne(this, apa1, animationmove); 
     break; 
    case move2: 
     addPicture(); 
     animationmove = PhotoAnimationProcess.moveTwo(this,apa1,animationmove); 

     break; 
    case move3: 
     animationmove = PhotoAnimationProcess.moveThree(this,apa1,animationmove); 
     break; 
    case move4: 
     animationmove = PhotoAnimationProcess.moveFour(this,apa1,animationmove);; 
     break; 
    case move5: 
     animationmove = PhotoAnimationProcess.moveFive(this,apa1,animationmove); 
     break; 

    default: 
     break; 
    } 

    Log.v(ALARM_SERVICE, "Animation Type" + animation.toString()); 

} 



public void onAnimationRepeat(Animation animation) { 
    // TODO Auto-generated method stub 

} 

}

答えて

0

ImageSwitcherウィジェットを見てみましょう。それはあなたが必要とするものを正確に行うようです。ドキュメントが不足しているため、ドキュメントの親であるViewSwitcherとViewAnimatorを確認する必要があります。

基本的にImageSwitcherは次のことを行います:画像を供給すると、スイッチャーは既に画像を隠している画像でアウトアニメーションを再生し、同時にそれを示す画像でアニメーションを再生します。内部的には、2つのImageView間を循環します。

ImageSwitcherが内部画像ビューを作成しないという問題が発生する可能性があります。あなたはどちらかApiDemosに示すようにViewFactoryを追加したり、単にレイアウトファイルでこれらの画像ビューを追加することがあります。

<ImageSwitcher ...> 
    <ImageView ... /> 
    <ImageView ... /> 
</ImageSwitcher> 
+0

感謝をあなたが答えるために!特定のイメージに焦点を当てずに文法的に特定のアニメーションを実行するには、これらのイメージが必要です。私はImageSwitcherが私を助けるつもりだとは思わない – user182192

+0

あなたはダースベレグの答えを誤解している。 ImageSwitcher(または、実際には、いずれかのスイッチャー)は、画像をスムーズに出し入れするためのアニメーションへの簡単なアクセスを提供します。これらのイメージには、必要なビットマップをプログラムで入力して、このホイールを再発明する手間を省くことができます(これは上で行っていることです)。 –

関連する問題