2016-10-01 4 views
0

Я пытаюсь создать заставку. Я добавил фоновое изображение для заставки экрана xml. Фоновое изображение имеет размер всего 382 kb. но он не появляется. Но в предварительном просмотре он показывает мне изображение.Фон заставки не отображается

Вот файл XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/back_ground" 
    tools:context="com.wisaver.app.updated.activities.SplashSecond"> 

</RelativeLayout> 

другой всплеск XML

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/back_ground_2" 
    tools:context=".updated.activities.SplashActivity"> 


    <!--<ImageView 
     android:id="@+id/ic_splash" 
     android:layout_gravity="center" 
     android:background="@drawable/back_ground_2" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" />--> 
    <ImageView 
     android:id="@+id/iv_splash" 
     android:layout_gravity="center" 
     android:background="@drawable/logo" 
     android:layout_width="300sp" 
     android:layout_height="140dp" /> 


</FrameLayout> 

Manifest

<activity 
     android:name=".updated.activities.SplashActivity" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".updated.activities.SplashSecond" 
     android:screenOrientation="portrait" /> 

Я тестирую его на Nexus 5. Я разрабатываю приложение с buildToolsVersion 24,0 +0,0. Как заставить его работать? Некоторая помощь здесь ценится.

public class SplashActivity extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash); 

    Thread th=new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       Thread.sleep(1000); 
       startActivity(new Intent(SplashActivity.this,SplashSecond.class)); 
       finish(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 

     } 
    }); 

    th.start(); 
} 
} 

Вот еще один

public class SplashSecond extends AppCompatActivity { 

//boolean letGo=true; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash_second); 
    Thread th=new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       Thread.sleep(400); 
       startActivity(new Intent(SplashSecond.this,ConsumerRetailerActivity.class)); 
       finish(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    } 
+0

он должен работать. – Androider

+0

Точно это должно сработать, но это не так :( –

+0

вы можете опубликовать свой код SplashActivity? –

ответ

0

Изменить Thread код в обоих деятельности следующим образом:

new Thread() { 
    @Override 
    public void run() { 
     try { 
      Thread.sleep(1000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
     myhandler.post(new Runnable() { 
      @Override 
      public void run() { 
       startActivity(new Intent(SplashActivity.this, SplashSecond.class)); 
       finish(); 
      } 
     }); 

    } 
}.start(); 

или Вы также можете попробовать следующий код:

new Handler().postDelayed(new Runnable() { 

    @Override 
    public void run() { 
     // This method will be executed once the timer is over 
     // Start your app main activity 

     startActivity(new Intent(SplashActivity.this, SplashSecond.class)); 

     // close this activity 
     finish(); 
    } 
}, SPLASH_TIME_OUT); 
0

S способ вскрытия экрана.

1.Create activity_splash.xml в res/layout

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
    <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/imgSplash" 
      android:layout_gravity="center_horizontal" 
      android:scaleType="fitCenter"/> 
</LinearLayout> 

2.Add ниже данного кода в SplashActivity.java класс

public class SplashActivity extends AppCompatActivity implements Runnable { 
    private static int SPLASH_DELAY = 2000; //miliseconds 
    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 

     ImageView imgSplash = (ImageView) findViewById(R.id.imgSplash); 

     //set your image 
     imgSplash.setImageResource(R.mipmap.ic_launcher); 

     Handler handler = new Handler(getMainLooper()); 
     handler.postDelayed(this,SPLASH_DELAY); 
    } 

    @Override 
    public void run() { 
     startActivity(new Intent(this,MainActivity.class)); 
     finish(); 
    } 
} 

3.Change в AndroidManifest.xml между <application>...</application>

<activity android:name=".SplashActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
</activity> 
<activity android:name=".MainActivity"> 
</activity> 
0

Пожалуйста, используйте л вместо разрешения высокого разрешения, потому что иногда требуется очень много времени для загрузки и означает, что экран исчезнет из-за таймера

Смежные вопросы