Android: как изменить изображения в режиме просмотра изображений с разными интервалами? - PullRequest
0 голосов
/ 29 февраля 2012

Я делаю приложение для Android, которое должно показывать изображения (я уже получил), только теперь приложение изменило курс, и изображения должны отображаться с различными интервалами, например, первое изображение отображается при запуске упражнениявторой через 4 секунды, третий через 15 секунд и т. д. Это мое действие, которое показывает изображения с фиксированными интервалами;

public class WCourse extends Activity implements OnClickListener, OnTouchListener, OnCompletionListener, OnBufferingUpdateListener{

//player
private ImageButton buttonPlayPause;
private SeekBar seekBarProgress;
public EditText editTextSongURL;


public static TextView TextViewTopTitle;

//Slider
public int currentimageindex=0;
Timer timer;
TimerTask task;
ImageView slidingimage;

//images ids
private int[] IMAGE_IDS = {
        R.drawable.c5_d1, R.drawable.c5_d2, R.drawable.c5_d3, R.drawable.c5_d4, R.drawable.c5_d5,
        R.drawable.c5_d6, R.drawable.c5_d7, R.drawable.c5_d8, R.drawable.c5_d9, R.drawable.c5_d10,
        R.drawable.c5_d11, R.drawable.c5_d12, R.drawable.c5_d13, R.drawable.c5_d14, R.drawable.c5_d15,
        R.drawable.c5_d16, R.drawable.c5_d17, R.drawable.c5_d18, R.drawable.c5_d19, R.drawable.c5_d20,
        R.drawable.c5_d21, R.drawable.c5_d22, R.drawable.c5_d23, R.drawable.c5_d24, R.drawable.c5_d25,
        R.drawable.c5_d26, R.drawable.c5_d27, R.drawable.c5_d28, R.drawable.c5_d29, R.drawable.c5_d30,
        R.drawable.c5_d31, R.drawable.c5_d32, R.drawable.c5_d33, R.drawable.c5_d34, R.drawable.c5_d35,
        R.drawable.c5_d36, R.drawable.c5_d37, R.drawable.c5_d38, R.drawable.c5_d39, R.drawable.c5_d40,
        R.drawable.c5_d41, R.drawable.c5_d42, R.drawable.c5_d43, R.drawable.c5_d44, R.drawable.c5_d45,
        R.drawable.c5_d46
    };

//player    
private MediaPlayer mediaPlayer;
private int mediaFileLengthInMilliseconds; // this value contains the song duration in milliseconds. Look at getDuration() method in MediaPlayer class

//slider handler
private final Handler handler = new Handler();

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.watch_course);

    TextViewTopTitle = (TextView) findViewById(R.id.TextViewTopTitle);
    Bundle bundle = getIntent().getExtras();
    TextViewTopTitle.setText(bundle.getString("RESULT2")+" ");
    getText(bundle.getString("RESULT2"));

    final Handler mHandler = new Handler();    
    initView();

 // Create runnable for posting
    final Runnable mUpdateResults = new Runnable() {
        public void run() {

            AnimateandSlideShow();

        }
    };

    final int delay = 500; // delay for .5 sec.      

    final long period = 1000;        
    Timer timer = new Timer();

    timer.scheduleAtFixedRate(new TimerTask() {

    public void run() {         
         mHandler.post(mUpdateResults);
    }

}, delay, period);}

private void AnimateandSlideShow() {
slidingimage = (ImageView)findViewById(R.id.ImageView3_Left);
    slidingimage.setImageResource(IMAGE_IDS[currentimageindex%IMAGE_IDS.length]);
currentimageindex++;
    slidingimage.getAnimation();}

Любые предложения или примеры того, как отображать эти изображения синтервалы?действительно буду признателен за вашу помощь.

1 Ответ

1 голос
/ 29 февраля 2012

Используйте код ниже, надеюсь, это поможет

MyCount count=new MyCount(IMAGE_IDS.length * 1000,1000);  
 public class MyCount extends CountDownTimer{

            public MyCount(long millisInFuture, long countDownInterval) {
               super(millisInFuture, countDownInterval);
               }

               @Override
               public void onFinish() {
                      start=0;
                  count.start();
                  }

               @Override
               public void onTick(long millisUntilFinished) {
                      if(start<=IMAGE_IDS.length)
{
                   img.setImageResource(IMAGE_IDS[start])
                   start+=1;
}

                 }
        }
int start=0;
count.start();
...