Как затемнить и деактивировать экран

202
26 октября 2017, 07:20

У меня в приложении главный экран это GoogleMap на весь экран. Также стоит слушатель на наличие подключения к интернету.

Нужно:

Затемнить экран и сделать его неактивным (некликабельным) пока не появится соединение.

Есть какие либо варианты реализации?

Answer 1

Самый простой вариант:

В layout кладете кликабельную View черного цвета с некоторой прозрачностью:

<View
    android:id="@+id/shadow_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:alpha="0.7"
    android:background="@android:color/black"
    android:clickable="true"
    android:translationZ="10dp"
    android:visibility="gone"/>

При отсутствии интернета, показываете ее:

mShadowView.setVisibility(View.VISIBLE);

При наличии – скрываете:

mShadowView.setVisibility(View.GONE);

Можно сделать анимацию по альфе для плавного появления этой View на экране:

private void showShadowView() {
    mShadowView.setVisibility(View.VISIBLE);
    ValueAnimator shadowViewAnimator = ObjectAnimator.ofFloat(mShadowView, "alpha", 0, 0.7f);
    shadowViewAnimator.setDuration(1000);
    shadowViewAnimator.start();
}
private void hideShadowView() {
    ValueAnimator shadowViewAnimator = ObjectAnimator.ofFloat(mShadowView, "alpha", 0.7f, 0);
    shadowViewAnimator.setDuration(1000);
    shadowViewAnimator.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animator) {
        }
        @Override
        public void onAnimationEnd(Animator animator) {
            mShadowView.setVisibility(View.GONE);
        }
        @Override
        public void onAnimationCancel(Animator animator) {
        }
        @Override
        public void onAnimationRepeat(Animator animator) {
        }
    });
    shadowViewAnimator.start();
}
READ ALSO
Java, многопоточночть, Sqlite

Java, многопоточночть, Sqlite

Есть несколько Sqlite баз, которым нужно делать вакумХочу делать вакум всем база в нескольких паралелльных потоках

145
Tочное значение термина &ldquo;unhandled exception&rdquo;

Tочное значение термина “unhandled exception”

Какие исключения относятся к необработанным? Те, которые не были обёрнуты в try-catch? Исключение, которое создаётся в методе, объявленном с throws...

247
Как прочитать данные типа UInt8(Objective-C) в byte(Java)?

Как прочитать данные типа UInt8(Objective-C) в byte(Java)?

Извините, но я не знаю даже, как правильно вопрос задатьНужно сделать тестовое задание на языке Java для Android

249
Проектирование кода: использование return в switch

Проектирование кода: использование return в switch

Какой код с точки зрения проектирования более правильный

179