Таймер обратного отсчета на изображении папки активов - PullRequest
0 голосов
/ 21 октября 2018

Я хотел бы спросить, как реализовать таймер обратного отсчета для загрузки всего изображения в папку ресурсов и отображения его в соответствии с установленным временем обратного отсчета.Например, у меня есть 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 Ответ

0 голосов
/ 21 октября 2018

Решение:

Вы можете сделать это, используя 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();
}

Надеюсь, это поможет, пожалуйста, прокомментируйте, если возникнут проблемы.

...