У меня есть 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>