Search code examples
androidandroid-layoutsplash-screen

Splashscreen in Android app: image is not loading


I am a beginner with android. I created, with android studio, a splash screen of a simple Logo (png of 1300x400 px) and when I run it work. I created an apk with the build function (to try on a smartphone) but it does not load the image (white screen for 3 seconds and then the app starts). Is it a phone problem (a simple vodafone VFD 600)?

This is the code

activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>

activity_splash_screen.xml

   <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f1f1f1" >

    <ImageView
    android:id="@+id/logo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:src="@drawable/logo" />

    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:textSize="12dp"
    android:textColor="#454545"
    android:gravity="center_horizontal"
    android:layout_alignParentBottom="true"
    android:text="www.codeseasy.com" />

    </RelativeLayout>

SplashSCreen.java

 package com.example.splashscreen;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class SplashScreen extends AppCompatActivity {

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);

new Handler().postDelayed(new Runnable() {
@override public void run() {
Intent i = new Intent(SplashScreen.this, MainActivity.class); startActivity(i);
finish(); } }, 5000);
}}

AndroidManifest.xml

   <?xml version="1.0" encoding="utf-8"?>
        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.splashscreen">

        <application
        android:allowBackup="true"
        android:icon="@Mipmap/ic_launcher"
        android:label="@String/app_name"
        android:roundIcon="@Mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@Style/AppTheme">
        <activity android:name=".MainActivity">
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        </activity>
        <activity android:name=".SplashScreen"
        android:theme="@Style/Theme.AppCompat.NoActionBar">
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>

        </application>

        </manifest>

MainActivity.kt

package com.example.splashscreen

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}

Good morning, I tried the apk on another smartphone, huawei p10, and it works. At this point the problem must be the smartphone. another question: is it possible to put a video instead of an image? obviously in the video the forward, backward, stop keys must not appear ... thanks.


Solution

  • Can you please check if your png is big in size or not .Because imageView generally doesn't like big images. And if you still want to go-ahead then try changing your image resolution then it work fine . Check the re-size method from this post .Activity runs slow with a couple of ImageView-s

    Hope its helpful