Mobil uygulamaların olmazsa olmazı olan Splash screenleri her uygulamada görüyoruz. Splash Screen, bir geçiş ekranıdır. Uygulama kullanıcıya hazırlanırken bazı kontroller koyarak hem kendinizin hem de kullanıcının bazı işlerini kolaylaştırabilir.
Kullanıcının bazı kontrollerden geçerek ana ekrana gitmesini isteyebilirsiniz. Bu kontroller kullanıcının internete bağlı olup/olmaması veya wifi üzerinden bağlı olmasını isteyebilirsiniz. İnternete bağlı ise kullanıma olağan şekilde devam edebilir yada bağlantısı yoksa bir uyarı verebilir ve uygulamayı kullanmasına izin vermeyebilirsiniz. Genellikle bu işleme bankacılık uygulamalarında rastlıyoruz. Senaryoları arttırmak gerekirse, bir uygulamanın özelliği olarak şarjınızın belirli yüzdenin altına indiğinde sadece kullanabileceğiniz bir uygulamada Splash screen kullanıcıya uygulamanın açıldığına dair bir geri bildirim verirken siz de bu kontrolleri gerçekleştirebilirsiniz.
En çok gördüğümüz bir diğer senaryo ise bu esnada şifre kontrolünün yapılması. Siz web uygulamasından şifreyi değiştirdiğinizde mobil uygulama hala eski şifre ile giriş yapmasını engellemek için mobil uygulamanında şifrenin hala geçerli olduğunu kontrol etmesi gerekir.
Biz ise kendi örneğimizde sadece süreye bağlı bir splash screen gerçekleştireceğiz.
Nasıl?
Boş bir proje açarak başlıyoruz. Projemizde iki activity class’ı mevcut olacak. Senaryomuz, splash screen işini bitirdikten sonra ana ekrana geçiş yapması. SplashScreenActivity adıyla yeni bir activity oluşturuyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class SplashScreenActivity extends AppCompatActivity { public static int SPLASH_TIME_OUT = 3000; @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 intent = new Intent(SplashScreenActivity.this, MainActivity.class); startActivity(intent); finish(); } },SPLASH_TIME_OUT); } } |
Bu işlemi aynı zamanda AsyncTask ile de gerçekleyebilirsiniz. Splash screen’de bulunan ikonunuz eğer uygulamaya gömülü değil de server’dan çekiyorsanız burada yaptığımız gibi süreye bağlı değil olaya bağlı da yapabilirsiniz.
Yeni bir activity oluşturduğumuz için bunu manifest dosyasına tanımlama yapmamız gerekiyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<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=".SplashScreenActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.Default" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> |
Geçiş yapılan ekranın bir önemi olmadığı için onun kodları yazmıyorum fakat projeye Github‘dan ulaşabilirsiniz ve diğer senaryolar için pull-request gönderebilirsiniz.