0

I am making an application for android which should show pictures (i was already obtained), only now the app ah changed course and the images should be displayed at varying intervals, for example, the first image is displayed when starting the activity, the second after 4 seconds, the third after 15 seconds, etc ... this is my activity that shows the images within fixed intervals;

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();}

Any suggestions or examples of how to display these images at varying intervals? really would appreciate your help.

JLouis
  • 284
  • 1
  • 5
  • 18
  • did you consider stopping the timer each time it is run and resetting the interval, then starting the timer with the new interval? – Andrei G Feb 29 '12 at 07:01
  • 1
    use this to get a random time public static int randomNumber(int min, int max) { return min + (new Random()).nextInt(max - min); } – zeitue Feb 29 '12 at 07:33

1 Answers1

1

Use below code hope it will help

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();
Maneesh
  • 6,098
  • 5
  • 36
  • 55
  • countdown timer use would be good, if after i intend to adapt the time it takes to seekbar? – JLouis Feb 29 '12 at 07:18
  • didn't get your question, please explain little bit – Maneesh Feb 29 '12 at 07:22
  • of course, this activity do three things, first playing a mp3 seekbar using, second, sample images that must be synchronized with audio, and then I'll do a textviews (like a subtitles) and that also must be synchronized like the images with the seek bar, the question was whether to use a countDownTimer, then I will have problems to adapt time intervals of the seekbar imageview later? – JLouis Feb 29 '12 at 07:30
  • 1
    yes your are right you have to sync the seekbar intervals with countdown timer interval so that for every interval of countdown, you change images.. – Maneesh Feb 29 '12 at 07:36