android постепенное появление и исчезновение каждые x секунд - PullRequest
0 голосов
/ 22 марта 2020

У меня есть LinearLayout с текстом и индикатором выполнения (просто экран загрузки). Я вызываю метод, который ищет устройства длиной 7 секунд, в то время как он ищет, я хочу исчезнуть LinearLayout и показать его, через 7 секунд должно исчезнуть . Через 3 секунды метод для поиска устройств должен быть вызван снова , и процесс отверстия снова начинается, , пока я не вызову метод для его остановки .

Я пытался сделать это с помощью обработчика и работоспособного объекта, но он запускался только при запуске один раз, ничего больше.

Вот что у меня есть:

Анимации

Animation fadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in);
Animation fadeOut = AnimationUtils.loadAnimation(this, R.anim.fade_out);

Запуск и обработка

private Runnable searchRunnable = new Runnable() {
    @Override
    public void run() {
        stopSearch();
        loader.startAnimation(fade_out);

        searchHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                startSearch();
                loader.startAnimation(fade_in);

                searchHandler.postDelayed(searchRunnable, 7000);
            }
        }, 3000);
    }
};

//OnCreate
Handler searchHandler = new Handler();
searchHandler.postDelayed(searchRunnable, 7000);

//Start search for the first time and fade loader in
startSearch();
loader.startAnimation(fade_in);

fade_in. xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="0"
        android:toAlpha="1"
        android:duration="1000"
        android:startOffset="50" />
</set>

fade_out. xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0"
        android:duration="1000"
        android:startOffset="50" />
</set>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...