4

ViewPager私は自分の画像ギャラリーを実装するために使用します。ビューは で構成されますImageView。ユーザーは通常、ジェスチャを使用してイメージ間を移動できます ( のようにViewPager)。

追加したいのは、スライドショー機能です。ユーザーがメニューから「スライドショー」オプションを選択すると、アイテムのアニメーションを開始できるようにしたいと考えています。ViewPager理想的には、アニメーションは画像/スライド間のフェードイン/アウト効果になります。

これを実装することは可能ViewPagerですか?

4

1 に答える 1

6

これが私がそれをした方法です。最初に、 UIチュートリアルでAndroidDisplayingBitmapsのコードをたくさん使用しました。

次に、次の調整を追加しました。

ViewPagerを含むアクティビティのOnCreateで:

mPager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageSelected(int arg0) {

            PhotoViewerFragment currentFragment = mAdapter
                    .getFragment(arg0);
            if (currentFragment != null) {

                if (mRunningSlideshow) {
                    currentFragment.addImageTransition();
                }

            }

        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            // TODO Auto-generated method stub
        }

    });

ViewPagerを含むアクティビティでスライドショーを実行するRunnable:

   private Runnable runSlideshow = new Runnable() {
        public void run() {
            // Second parameter of false turns ViewPager scroll animation off
            mPager.setCurrentItem(mPager.getCurrentItem() + 1, false);
            mSlideshowHandler.postDelayed(runSlideshow,
                SLIDESHOW_IMAGE_DURATION);
    }
};

画像を表示するフラグメント:

private static final int FADE_IN_TIME = 200;

/**
 * Adds fade-in transition when in slideshow mode. Called from PhotoViewerActivity.
 */
public void addImageTransition() {
    // Transition drawable with a transparent drawable and the final bitmap
    final TransitionDrawable td = new TransitionDrawable(new Drawable[] {
            new ColorDrawable(android.R.color.transparent),
            mImageView.getDrawable() });

    mImageView.setImageDrawable(td);
    td.startTransition(FADE_IN_TIME);
}
于 2012-08-08T22:10:57.100 に答える