Задать вопрос
@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);
        }
    }
}
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
За такие сплэши хочется убивать. К тому моменту, когда активити onCreate выполняется, делать сплэш уже поздно. Тем более с задержкой. Единственный правильный путь сделать сплэш - это проставить его через тему(android:windowBackground). Конечно же, статичная картинка, и никаких надписей там не будет. И не забыть зануллить его в onCreate, чтобы избежать overdraw.
Ответ написан
Комментировать
@Chesterfield25 Автор вопроса
Нашел решение своего вопроса. Я перепробовал по крайней мере ещё два варианта кода splash screen, но нечего не помогало. Решением оказалось изменение большего разрешение изображения на несколько раз меньше и формат jpg изменил на png.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы