下面是我做到的。首先,我使用了很多來自Android Displaying Bitmaps in Your UI tutorial的代碼。
然後,我添加了以下調整:
在活動的OnCreate包含ViewPager:
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
}
});
Runnable的是,在活動運行幻燈片包含ViewPager:
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);
}
我也試圖實現這一點。什麼是mRunningSlideshow?我不斷收到一個空指針。我在創建片段之前添加了轉場。 –
mRunningSlideshow是一個布爾值,用於跟蹤用戶是否選擇了幻燈片模式(他們也可以選擇手動掃描照片)。不知道在空指針,對不起......我甚至不再在這個項目上工作,所以沒有設置運行代碼。 – inky