@Chesterfield25

Почему не показывает изображение?

Есть splashScrin на этом экране должно появляться изображение, но по какой то причине изображение показывается не на всех устройствах.

5ff587251dfb5693815721.png

Код SplashActivity

public class SplashActivity extends BaseActivity {
    private PrefManager prefManager;
    private static int SPLASH_TIME_OUT = 1000;
    private Handler handler = new Handler();
    private Context context;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Making notification bar transparent
        if (Build.VERSION.SDK_INT >= 21) {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        }
        setContentView(R.layout.activity_splash);
        context = SplashActivity.this;

        // making notification bar transparent
        changeStatusBarColor();

        prefManager = new PrefManager(this);
        if (!prefManager.isFirstTimeLaunch()) {
            launchHomeScreen();
        }else{
            timeHandler();
        }
    }

    private void timeHandler(){
        new Handler().postDelayed(new Runnable(){
            @Override
            public void run(){
                launchHomeScreen();
            }
        },SPLASH_TIME_OUT);
    }

    private void launchHomeScreen() {
        //prefManager.setFirstTimeLaunch(false);
        startActivity(new Intent(SplashActivity.this, IntroActivity.class));
        finish();
    }

    /**
     * Making notification bar transparent
     */
    private void changeStatusBarColor() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.TRANSPARENT);
        }
    }
}
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
За такие сплэши хочется убивать. К тому моменту, когда активити onCreate выполняется, делать сплэш уже поздно. Тем более с задержкой. Единственный правильный путь сделать сплэш - это проставить его через тему(android:windowBackground). Конечно же, статичная картинка, и никаких надписей там не будет. И не забыть зануллить его в onCreate, чтобы избежать overdraw.
Ответ написан
@Chesterfield25 Автор вопроса
Нашел решение своего вопроса. Я перепробовал по крайней мере ещё два варианта кода splash screen, но нечего не помогало. Решением оказалось изменение большего разрешение изображения на несколько раз меньше и формат jpg изменил на png.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ОТП Банк Москва
от 240 000 до 270 000 ₽
Sportmaster Lab Санкт-Петербург
от 150 000 ₽
Эвотор Москва
от 180 000 до 250 000 ₽