2013-03-16 31 views
14

My Package ExplorerAndroidのスプラッシュ画面

はこれがそうトップ から開始し、私はそれが配置されていると思う問題に各地の方法で作業することができます私は私のパッケージエクスプローラで持っている..です

MainActivity.java - 今

package com.drg.idoser; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

public class MainActivity extends Activity { 

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

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

} 

SplashActivity.java

package com.drg.idoser; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Window; 
import android.view.WindowManager; 

public class SplashActivity extends Activity { 

private static String TAG = SplashActivity.class.getName(); 
private static long SLEEP_TIME = 5; // Sleep for some time 

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

    this.requestWindowFeature(Window.FEATURE_NO_TITLE); // Removes title bar 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  WindowManager.LayoutParams.FLAG_FULLSCREEN); // Removes notification bar 

    setContentView(R.layout.splash); 

    // Start timer and launch main activity 
    IntentLauncher launcher = new IntentLauncher(); 
    launcher.start(); 
} 

private class IntentLauncher extends Thread { 
    @Override 
    /** 
    * Sleep for some time and than start new activity. 
    */ 
    public void run() { 
    try { 
     // Sleeping 
     Thread.sleep(SLEEP_TIME*1000); 
    } catch (Exception e) { 
     Log.e(TAG, e.getMessage()); 
    } 

    // Start main activity 
    Intent intent = new Intent(SplashActivity.this, MainActivity.class); 
    SplashActivity.this.startActivity(intent); 
    SplashActivity.this.finish(); 
    } 
} 
} 

activity_main.xml

<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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

</RelativeLayout> 

splash.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:background="@drawable/splash_bg" 
android:layout_height="match_parent" 
android:orientation="vertical" > 


</LinearLayout> 

AndroidManafest.xml

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

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.drg.idoser.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 

今私は私の問題は私がsplachを持っていると思ういけないにAndroidManafest.xmlだと思いますAndroidManafest.xml私の携帯電話から私のアプリケーションを起動するときに画面を設定するactivity_main.xmlsplash.xml私は自分の問題を見つけることはできませんが、私は誰でもTeamViwerを持っていて5秒間表示するために私のスプラッシュ画面が必要です。もしそれが速くなると情報。

+1

を終えます。代わりに、Handlerを使用します。リンクをチェックしてくださいhttp://stackoverflow.com/a/12195205/361100 – Youngjae

+0

このhttps://github.com/meetmehdi/GoodSplashを参照してください –

答えて

25

<application>タグを次のように変更してください。あなたはSplashActivityが宣言されておらず、ランチャーアクティビティとしてMainActivityが設定されています。

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.drg.idoser.SplashActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.drg.idoser.MainActivity" 
     android:label="@string/app_name" /> 
</application> 
+0

ありがとうそれは働いた:) –

+0

私はそれを試してみました25分を待って言った私はなぜ知っている –

+0

私にはうまくいった。ありがとう – Zapnologica

1

このようにスプラッシュ画面に簡単にアクセスできます。

public class MainActivity extends Activity { 
    private ImageView splashImageView; 
    private boolean splashloading = false; 

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

     splashImageView = new ImageView(this); 
     splashImageView.setScaleType(ScaleType.FIT_XY); 
     splashImageView.setImageResource(R.drawable.ic_launcher); 
     setContentView(splashImageView); 
     splashloading = true; 
     Handler h = new Handler(); 
     h.postDelayed(new Runnable() { 
      public void run() { 
       splashloading = false; 
       // set your layout file in below 
       setContentView(R.layout.activity_main); 
      } 
     }, 3000); 

    } 
} 

作品100%です。

-1
@Override 

    protected void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 

      setContentView(R.layout.activity_main); 

      Thread th = new Thread(new Runnable() {   /*create a new thread */ 

           @Override 

           public void run() { /* 

                    * The purpose of this thread is to 

                    * navigate from one class to another 

                    * after some time 

                    */ 

            try { 

              Thread.sleep(5000); 

            } catch (InterruptedException e) { 

              /* 

              * We are creating this new thread because we don’t 

              * want our main thread to stop working for that 

              * time as our android stop working and some time 

              * application will crashes 

              */ 

              e.printStackTrace(); 

            } 

            finally { 

              Intent i = new Intent(MainActivity.this, 

                  Splash_Class.class); 

              startActivity(i); 

              finish(); 

            } 

           } 

         }); 

      th.start(); // start the thread 

    } 

http://www.codehubb.com/android_splash_screen

+0

あなたのタブを修正してください! –

+3

いくつかの説明がいいでしょう。ちょうどコードダンプは役に立ちません。 –

+0

ようこそスタックオーバーフロー!ターゲットサイトに到達できない場合、または永久にオフラインになる場合に備えて、リンクの最も関連性の高い部分を引用してください。[良い答えを書くにはどうすればいいですか](http://stackoverflow.com/help/how-to-answer)を参照してください。 – Gattsu

2

ベストな方法あなたのアプリケーションが起動されるたびに新しいアクティビティを作成することになります表示されるように、スプラッシュスクリーンを実装します。

public class SplashScreen extends Activity { 

private Handler mHandler; 

private Runnable myRunnable; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Just create simple XML layout with i.e a single ImageView or a custom layout 
    setContentView(R.layout.splash_screen_layout); 
    mHandler = new Handler(); 
    myRunnable = new Runnable() { 
     @Override 
     public void run() { 
      Intent intent = new Intent(SplashScreen.this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    }; 

} 

@Override 
public void onBackPressed() { 
// Remove callback on back press 
    if (mHandler != null && myRunnable != null) { 
     mHandler.removeCallbacks(myRunnable); 
    } 
    super.onBackPressed(); 
} 

@Override 
protected void onPause() { 
// Remove callback on pause 
    if (mHandler != null && myRunnable != null) { 
     mHandler.removeCallbacks(myRunnable); 
    } 
    super.onPause(); 
} 

@Override 
protected void onResume() { 
// Attach and start callback with delay on resume 
    if (mHandler != null && myRunnable != null) { 
     mHandler.postDelayed(myRunnable, ConstantValues.SPLASH_TIME_OUT); 
    } 
    super.onResume(); 
} 
} 
0

このスプラッシュ画面歓迎イメージのためのアニメーションを行うと、強く** **スレッドを使用しないことをお勧めします、スプラッシュスクリーンコードの上にコピーするかもしれない人のそれらのための:)

//splash screen < 

ImageView image = (ImageView) findViewById(R.id.s_logo); 

    Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.jump_up); 
    image.startAnimation(animation); 


    Thread thread = new Thread() { 
     public void run() { 
      try { 
       sleep(5000); 
       Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
       startActivity(intent); 
       finish(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 
    thread.start(); 

    //splach screen /> 
関連する問題