0

さまざまな画像のカスタマイズされたアニメーション スライドショーをセットアップしようとしています。カスタマイズされたビューを使用して、単一の画像のアニメーションを設定することができました。ここで、arraylist 内のすべての画像のスライド ショーをセットアップしたいと考えています。画像が次々に表示されるように、現在、カスタマイズされたビューが 1 つありますが、各画像に対してさらにビューを作成する必要がありますか? 何か案は?

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

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

}

}

4

1 に答える 1

0

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

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

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

<ImageSwitcher ...>
    <ImageView ... />
    <ImageView ... />
</ImageSwitcher>
于 2012-04-08T10:40:15.260 に答える