Thursday, September 22, 2011

Loading In Android Application

          Hai guys, kali ini kita akan buat sebuah aplikasi Android sederhana yang isinya adalah untuk menampilkan splash screen atau form loading, sebelum kita memulai coding program, sebaiknya aku kasih rancangan dari halaman loading yang akan kita buat.
ini loh gambarnya : 

          sebelumnya kita siapkan dulu image yang mau ditampilkan, buat sebuah project baru bernama coba kemudian pilih Target platform-nya 2.2 (android froyo), setelah project berhasil dibuat, kita buat package di dalam directory src dengan cara klik kanan dibagian direktory src pada window eclipse kemudian pilih New 
-> Package dan silakan ikuti langkah berikutnya(mudah kok). Karena form loading ini akan ditampilkan sebelum halaman utama, maka kita buat sebuah class java baru yang bernama Loading.java (harus diingat bahwa huruf pertama dari nama class adalah kapital). silakan copy coding Loading.java dibawah ini:

package com.juwita;
//Nama package yang kamu buat tadi,

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.content.Intent;

public class Loading extends Activity {
ProgressBar bar;
TextView txt;
int total=0;
Intent intent;
boolean isRunning=false;

// handler for the background updating
Handler handler=new Handler() {
//coding ini yang akan menampilkan berapa persen progress yang telah dijalani.
@Override
public void handleMessage(Message msg) {
total=total+5;
String perc=String.valueOf(total).toString();
txt.setText(perc+"% Completed");
bar.incrementProgressBy(5);
}
};

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
bar=(ProgressBar)findViewById(R.id.progg);
txt=(TextView)findViewById(R.id.load);

}
public void onStart() {
super.onStart();
 
// reset the bar to the default value of 0
bar.setProgress(0);
 
final Loading sPlashScreen = this; 
// create a thread for updating the progress bar
Thread background=new Thread(new Runnable() {
 
public void run() {
try {
for (int i=0;i<20 && isRunning;i++) {
 
// wait 1000ms between each update
Thread.sleep(1000);
handler.sendMessage(handler.obtainMessage());
}
finish();
}
catch (Throwable t) {
  }

Intent intent = new Intent();
//Coba merupakan nama activity yang kita isi saat pertama kali membuat project, jadi harus disesuaikan dengan nama activity yang kalian buat ya :))
//coding ini akan dijalankan ketika objek sPlashScreen yang merupakan objek langsung dari class Loading telah selesai maka Coba.class akan diproses atau dijalankan.
intent.setClass(sPlashScreen, Coba.class);
startActivity(intent);
}
 
});
 
isRunning=true;
 // start the background thread
background.start();
 
}
public void onStop() {
super.onStop();
isRunning=false;
}
}

setelah file javanya dibuat, saatnya kita atur Layoutnya dengan file xml, oleh karena itu buat file xml baru di dalam directory layout. Untuk penamaan file xml, semua harus huruf kecil. nama file xml di project ini harus sama dengan yang di file Loading.java, yaitu splash.xml.
silakan copy coding splash.xml dibawah ini:

    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="bottom"
    >
   
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/bg"
    android:layout_gravity="center"
    android:layout_marginBottom="60dip"
    />
   
   
   android:id="@+id/progg"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_marginBottom="10dip"
   style="?android:attr/progressBarStyleHorizontal"
    />
    
   
    android:id="@+id/load"
    android:textColor="#FFCCFF"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    >


langkah selanjutnya ialah, modifikasi file activity kita,yaitu Coba.java,  berikut ini codingnya:

package com.juwita;
import android.app.Activity;
import android.os.Bundle;

public class Coba extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}


kemudian edit file main.xml yang ada didalam directory layout, file ini secara default langsung di generate saat pertama kali kita membuat project baru,
Berikut ini coding main.xml:

  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
android:textSize="30dip"
android:layout_width="wrap_content" android:layout_height="wrap_content">


Langkah terakhir ialah memodifikasi file AndroidManifet.xml dengan mendaftarkan file java Loading,


silakan tambahkan coding diatas ini,
setelah itu, coba jalankan project ini:
Jika berhasil maka output akan menjadi seperti dibawah ini:


Selamat mencoba ^_^,
kalo ada yang mau ditanyai, silakan aja ya, mari kita sama-sama belajar.

16 comments:

  1. waah post nyah sedikit membantu, tapi sedikit harus di perbaiki,
    source code splash.xml nyah masih banyak yang salah
    tp tetep semangat berbagi ilmu yah kaka :)
    kalo bisa sih di perbaiki
    hee

    ReplyDelete
  2. salah di bagian mana ya??

    krn ini koding dah aq jalanin sendiri lohhh..
    Ok thx ya dah mampir n thx jg sarannya ^_^

    ReplyDelete
    Replies
    1. source code yg buat modifikasi androidmanifest di sisipin dmna ka?
      trus codingan yg loading.java ada yg error deh ka

      Delete
  3. mbak-e cuma koment aja... kok ndak dikasih download source code nya sich... hehe.. ma'af cuma koment.. :-)
    kalau aku nanya2 seputar android kira2 berkenan tidak mbak-e..
    :-s

    ReplyDelete
    Replies
    1. hai anonim,,
      tujuan aku kasih tertulis ini codingnya biar kamu bisa ketik sendiri, karena dengan ketik sendiri,kamu bisa sambil belajar loh..

      selama pertanyaan kamu bisa aku jwb, knp ga??

      Maaf ya lama balasnya :)

      Delete
  4. Terimakasih.. Aplikasiku semakin komplit dengan splashscreen.. Sangat bermanfaat..
    GBU

    ReplyDelete
    Replies
    1. Hai serubanget,

      terimkasih dah mampir ke Blog ku.
      Sukses terus ya.
      GBU full ^_^

      Delete
  5. mau nnya dung..
    kalo misal mau buat loading gmn yah?
    jadi progress bar nya muter aja..

    cara nya gmn itu??
    makaish.. :)

    sukses terus blog nya.. ^^

    ReplyDelete
  6. mba, itu kan warna progressbarnya orange. misalkan kalo mau kita ganti warna merah atau biru bisa ngga ? trus gmn caranya ?

    ReplyDelete
  7. Description Resource Path Location Type
    Element type "android:id" must be followed by either attribute specifications, ">" or "/>". splash.xml /Cover/res/layout line 8 Android XML Format Problem
    ...kira2 kenapa ya

    ReplyDelete
  8. mbak - e, sy mencoba memahami maksud dari tulisan mbak - e yang di atas, maksudnya mah udah baek .... tapi kemaren saya lagi di buru deadline tugas jadi gx sempet nulis koding sendiri. blum lagi nanti klo ada errornyah,
    jadi kapan" klo mo baik sekalian yah ... + source codenya uga

    ReplyDelete
    Replies
    1. Hai Akbar, maaf krn sudah membuat kamu kecewa.
      hmm kalo lagi diburu deadline jd bikin ga bisa nulis coding berarti tuh tugas gak jadi2 dong mpe skg?. hehehe

      Tp sekali lg maaf ya Akbar. Peace ^_^

      Delete
  9. di coding splash xml itu ga ada open tag nya yah ( <... ) ??
    misal di bagian :
    android:id="@+id/progg"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dip"
    style="?android:attr/progressBarStyleHorizontal"
    />

    harusnya dibagian atas diberi open tag <ProgressBar

    ReplyDelete
  10. cara ngasih gambar di loading seperti contoh mbae di atas gimana ya, maap masih newbie :D
    balas

    ReplyDelete
    Replies
    1. hi hi,

      sorry to say, codingan android dh lama gw tinggalin jd udah lupa.
      yang pasti itu codingan jalan koq.

      maafff :(

      Delete