1

私は20枚の画像を持っていて、次々とトランジションします。トランジションは、タイマーと一緒に次のループで実装されます。

    final Runnable mUpdateResults = new Runnable() {
        public void run() {
            AnimateandSlideShow();
        }
    };

    final int delay = 2000; 
    final long period = 2000;
    final Timer timer = new Timer();
    final Handler mHandler = new Handler();

    timer.scheduleAtFixedRate(new TimerTask() {
        public void run() {
             mHandler.post(mUpdateResults);
        }
    }, delay, period);

    private void AnimateandSlideShow() {
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), IMAGE_IDS[currentimageindex%IMAGE_IDS.length]);
        slidingimage = (ImageView)findViewById(R.id.mainImageView);
        int imViewheight = 400;
        int imViewwidth = 600;
        Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, imViewwidth, imViewheight, true);              
        slidingimage.setImageBitmap(convertColorIntoBlackAndWhiteImage(scaledBitmap));
        currentimageindex++; 

        slidingimage.startAnimation(fadeInAnimation);
        slidingimage.startAnimation(fadeOutAnimation);
    }

トランジションのフェードイン、1000ms 表示、フェードアウトを行うのが好きです。として実装されています

    Animation fadeOutAnimation = new AlphaAnimation(1.0f, 0.0f);
    Animation fadeInAnimation = new AlphaAnimation(0.0f, 1.0f);
    fadeInAnimation.setDuration(2000);
    fadeOutAnimation.setDuration(2000);

今起こっていることはフェードインかフェードアウトだけです。それらの1つだけ。画像が最初にフェードインし、次に 1000ms 表示されてフェードアウトするようにするにはどうすればよいですか。

4

2 に答える 2

0

そのようにしてみてください

フェードイン.xml

<?xml version="1.0" encoding="UTF-8"?>
       <set xmlns:android="http://schemas.android.com/apk/res/android">
         <alpha android:fromAlpha="0.0" android:toAlpha="1.0" 
          android:interpolator="@android:anim/accelerate_interpolator" 
          android:duration="2000"/>
     </set>

フェードアウト.xml

<?xml version="1.0" encoding="UTF-8"?>
       <set xmlns:android="http://schemas.android.com/apk/res/android">
         <alpha android:fromAlpha="1.0" android:toAlpha="0.0" 
          android:interpolator="@android:anim/accelerate_interpolator" 
          android:duration="2000"/>
     </set>

そのようにアニメーションをロードします

    Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
   Animation fadeoutAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_out_anim);
   imageView.startAnimation(fadeinAnim);
    imageView.startAnimation(fadeoutAnim);
于 2013-06-30T06:19:58.470 に答える