Относительно видоискателя с автоматическим переключением
Прямо сейчас я могу перевернуть взгляды, используя скольжение. Я хочу перевернуть вид автоматически через 5 секунд.
Код, который я должен перевернуть, основанный на распознавании жестов:
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setOutAnimation(slideLeftOut);
if (currentIndex == maxIndex) {
currentIndex = 0;
} else {
currentIndex = currentIndex + 1;
}
if (currentView == 0) {
currentView = 1;
ImageView iv = (ImageView) findViewById(R.id.one);
/*iv.setImageDrawable(Drawable.createFromPath(ImageList
.get(currentIndex)));*/
Bitmap mBitmap=BitmapFactory.decodeFile(ImageList.get(currentIndex));
iv.setImageBitmap(mBitmap);
Log.d("image list index!!", ImageList.get(currentIndex));
System.gc();
} else if (currentView == 1) {
currentView = 2;
ImageView iv = (ImageView) findViewById(R.id.two);
/*iv.setImageDrawable(Drawable.createFromPath(ImageList
.get(currentIndex)));*/
Bitmap mBitmap=BitmapFactory.decodeFile(ImageList.get(currentIndex));
iv.setImageBitmap(mBitmap);
Log.d("image list index!!", ImageList.get(currentIndex));
System.gc();
} else {
currentView = 0;
ImageView iv = (ImageView) findViewById(R.id.zero);
/*iv.setImageDrawable(Drawable.createFromPath(ImageList
.get(currentIndex)));
*/
Bitmap mBitmap=BitmapFactory.decodeFile(ImageList.get(currentIndex));
iv.setImageBitmap(mBitmap);
Log.d("image list index!!", ImageList.get(currentIndex));
System.gc();
}
Log.v("ImageViewFlipper", "Current View: " + currentView);
viewFlipper.showNext();
viewFlipper.startFlipping();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
if (currentIndex == 0) {
currentIndex = maxIndex;
} else {
currentIndex = currentIndex - 1;
}
if (currentView == 0) {
currentView = 2;
ImageView iv = (ImageView) findViewById(R.id.two);
iv.setImageDrawable(Drawable.createFromPath(ImageList
.get(currentIndex)));
System.gc();
} else if (currentView == 2) {
currentView = 1;
ImageView iv = (ImageView) findViewById(R.id.one);
iv.setImageDrawable(Drawable.createFromPath(ImageList
.get(currentIndex)));
System.gc();
} else {
currentView = 0;
ImageView iv = (ImageView) findViewById(R.id.zero);
iv.setImageDrawable(Drawable.createFromPath(ImageList
.get(currentIndex)));
System.gc();
}
Log.v("ImageViewFlipper", "Current View: " + currentView);
viewFlipper.showPrevious();
}
} catch (Exception e) {
// nothing
}
return false;
}
}
Я переворачиваю, используя методы viewFlipper.showNext() и showPrevious(). Я пытался с помощью
viewFlipper.setFlipInterval(1000);
и viewFlipper.startFlipping(); методы. Проблема, с которой я сталкиваюсь сейчас, состоит в том, что есть 3 просмотра изображений, которые мне нужно загружать один за другим подряд подряд (и изображения должны меняться в каждом из изображений по мере их продвижения). Этого не происходит. Я вижу только 2 фиксированных изображения, которые отображаются одно за другим без какого-либо изменения их содержания. Как мне решить эту проблему?
1 ответ
Взглянуть на методы startFlipping() и setFlipInterval() в классе ViewFlipper
http://android-er.blogspot.com/2011/03/auto-flipping-of-viewflipper.html
перейдите по ссылке выше. надеюсь, это помогает