Таймер обратного отсчета на изображении папки активов
Я хотел бы спросить, как реализовать таймер обратного отсчета, чтобы загрузить все изображение в папку активов и отобразить его в соответствии с установленным временем обратного отсчета. Например, у меня есть 5 изображений в папке с активами, и я помещаю их в массив. Каждые 5 секунд будет отображаться каждое изображение. Например: изображение 1> 5 секунд прошло> изображение 2> 5 секунд прошло> изображение 3 и так далее...
Ниже мой код. Пожалуйста, поделитесь со мной своими знаниями или любым способом их реализации. Благодарю.
public class MainActivity extends AppCompatActivity {
private VrPanoramaView mVRPanoramaView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mVRPanoramaView = (VrPanoramaView) findViewById(R.id.vrPanoramaView);
loadPhotoSphere();
}
private void loadPhotoSphere() {
VrPanoramaView.Options options = new VrPanoramaView.Options();
InputStream inputStream = null;
AssetManager assetManager=getAssets(); // to reach asset
try {
String[] images = assetManager.list("img");// to get all item in img folder.
options.inputType = VrPanoramaView.Options.TYPE_MONO;
for (int i = 0; i < images.length; i++) // the loop read all image in img folder
{
inputStream = getAssets().open("img/" + images[i]);
mVRPanoramaView.loadImageFromBitmap(BitmapFactory.decodeStream(inputStream), options);
}
}catch (IOException e) {
// you can print error or log.
e.printStackTrace();
}
}
}
1 ответ
Решение:
Вы можете сделать это с помощью Handler
как показано ниже:
Handler h = new Handler();
int delay = 5*1000; //1 second = 1000 milisecond, 5 * 1000 = 5seconds
Runnable runnable;
@Override
protected void onResume() {
//start handler as activity become visible
h.postDelayed( runnable = new Runnable() {
public void run() {
// do the setting of image here
h.postDelayed(runnable, delay);
}
}, delay);
super.onResume();
}
@Override
protected void onPause() {
h.removeCallbacks(runnable); //stop handler when activity not visible
super.onPause();
}
Надеюсь, это поможет, пожалуйста, прокомментируйте, если какие-либо вопросы.