Всплывающее окно обратного отсчета с изображениями (Android) - PullRequest
2 голосов
/ 27 марта 2012

Я пытаюсь создать таймер обратного отсчета, который будет всплывать и каждую секунду показывать другое изображение, чтобы он перешел "3, 2, 1, Пуск", а затем начал другое действие. Я пробовал это множество способов, но не могу заставить кого-либо работать ... если бы кто-нибудь мог указать мне правильное направление, это было бы здорово!

package com.practice;

import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.ImageView;

public class Practice2 extends Activity {

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

final long delayCount = 1000;
final long delayIncrement = 1000;
final long delayCount1 = 1000;
final long delayIncrement1 = 1000;
final long delayCount2 = 1000;
final long delayIncrement2 = 1000;


final Dialog dialog = new Dialog (Practice2.this,
android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 
dialog.setTitle("Get ready to play DrawTastic!"); 

final CountDownTimer timer = new CountDownTimer(delayCount, delayIncrement) { 

@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub

ImageView three = (ImageView) dialog.findViewById(R.id.iv3); 
three.setImageResource(R.drawable.three); 

}

@Override
public void onFinish() {
// TODO Auto-generated method stub
ImageView two = (ImageView)dialog.findViewById(R.id.iv2); 
two.setImageResource(R.drawable.two); 
timer1.start();
} 

final CountDownTimer timer1 = new CountDownTimer(delayCount1, delayIncrement1) { 

@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
ImageView one = (ImageView) dialog.findViewById(R.id.iv1); 
one.setImageResource(R.drawable.one); 

}

@Override
public void onFinish() {
// TODO Auto-generated method stub
ImageView play = (ImageView) dialog.findViewById(R.id.ivPlay); 
play.setImageResource(R.drawable.play); 
timer2.start();
} 

final CountDownTimer timer2 = new CountDownTimer(delayCount2, delayIncrement2) { 

@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
ImageView play = (ImageView) dialog.findViewById(R.id.ivPlay); 
play.setImageResource(R.drawable.play); 

}

@Override
public void onFinish() {
// TODO Auto-generated method stub
ImageView play = (ImageView) dialog.findViewById(R.id.ivPlay); 
play.setImageResource(R.drawable.play); 
dialog.dismiss();
}

};
};
};

timer.start();

dialog.show(); 

}
}

1 Ответ

2 голосов
/ 27 марта 2012

Используйте Обработчик . Вам нужно будет показать 4 разных изображения с интервалом в 1 секунду каждое. Что-то вроде -

new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            imageView.setBackgroundResource(R.id.nextImage);
        }
    }, 1000);

Но я бы предложил вам использовать TextView, как показано в демонстрациях API.

Перейти к Views->TextSwitcher в демонстрационных версиях API.

...