2016-07-08 3 views
-1

Я новичок в java, и я хочу добавить заставку в код. поэтому я создал макет XML с именем splash.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="@drawable/splash" > 

</RelativeLayout> 

и я создал Java Classe с именем splash.java:

package com.test.test; 


import android.app.Activity; 
import android.content.Intent; 
import android.os.Handler; 
import android.os.Bundle; 
import android.view.Window; 

import com.test.test.R; 


public class Splash extends Activity { 

private boolean backbtnPress; 
private static final int SPLASH_DURATION = 3000; 
private Handler myHandler; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
    getActionBar().hide(); 

    setContentView(R.layout.splash); 

    myHandler = new Handler(); 
    myHandler.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      finish(); 

      if(!backbtnPress) 
      { 
       Intent intent = new Intent(Splash.this,MainActivity.class); 
       Splash.this.startActivity(intent); 
      } 

     } 
    }, SPLASH_DURATION); 

} 

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 

    backbtnPress = true; 
    super.onBackPressed(); 
} 
} 

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

вы можете мне помочь, пожалуйста,

Спасибо заранее!

+0

показать мне свой манифест код файла –

+0

Вы, вероятно, имеет два вида деятельности с и . Однако, только ваш splachScreen должен включать эти намерения. – W0rmH0le

+1

вы делаете ошибку ..... делайте, как @Nitesh Pareek ответ –

ответ

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

Может быть, вы должны умысел фильтра в YOUT Manifest.xml, как это:

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

редактировать его и установить умысел фильтр только для выплеска активности

+0

Спасибо за ответ! – Youness

0

здесь androidManifest

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

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="19" /> 

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> 
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/application_name" 
    android:logo="@drawable/ic_launcher" 
    android:theme="@style/Theme.Easyrambooster" > 
    <activity 
     android:name="com.test.test.MainActivity" 
     android:label="@string/application_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

    <service android:name="com.test.test.QuickBoosterService" > 
    </service> 

     <activity 
     android:name="com.test.test.Splash"> 
     <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

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

    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

    <activity 
     android:name="com.google.android.gms.ads.AdActivity" 

android: configChanges = "keyboard | keyboardHidden | ориентация | screenLayout | uiMode | screenSize | smallestSc reenSize»/>

</manifest> 
+0

удалите эту строку из вашего .MainActivity delacration в манифесте

+0

благодарю вас всех за ваши ответы .. presblem resolved (y) – Youness

1

объявить манифест как этого

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <!-- Splash screen --> 
    <activity 
     android:name=".SplashScreen" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.Black.NoTitleBar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 

    <!-- Main activity --> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
    </activity> 
</application> 

Вашего splashActivity код, как это его работу

public class SplashScreen extends Activity { 

    // Splash screen timer 
    private static int SPLASH_TIME_OUT = 3000; 

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

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

      /* 
      * Showing splash screen with a timer. This will be useful when you 
      * want to show case your app logo/company 
      */ 

      @Override 
      public void run() { 
       // This method will be executed once the timer is over 
       // Start your app main activity 
       Intent i = new Intent(SplashScreen.this, MainActivity.class); 
       startActivity(i); 

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

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