Tuesday, 22 August 2017

Belajar Dasar Android

Project Structure

  • Project Android dibangun berdasarkan direktori yang spesifik mirip membuat project Java
  • Root Content: ada 6 content utama
    • File : AndoidManifest.xml : file XML yang mendeskripsikan aplikasi yang dibangun dan  komponen (activities, services, etc) yang disediakan oleh aplikasi.
    • File : build.xml, adalah script Ant untuk meng-compile aplikasi dan meng-installnya dalam device.
    • Direktory : bin/, yang memuat aplikasi setelah di-compile
    • Direktory : src/, yang memuat file-file source code java untuk pembuatan aplikasi
    • Direktory : res/, yang memuat “seluruh sumber”, seperti icon, GUI Layout, dan sejenisnya.
    • Direktory : assets/, yang memuat file-file static lainnya yang ingin dikemas bersama aplikasi untuk dideploy ke dalam device.

Activity

Activity adalah komponen aplikasi yang menyediakan tampilan yang mana pengguna dapat berinteraksi untuk melakukan sesuatu, seperti menelpon, mengambil foto, mengirim email dsb. Setiap activity diberikan jendela yang mana dapat diberikan tampilan untuk pengguna.

Dalam 1 aplikasi biasanya terdiri dari banyak activity yang saling terkait dengan activity lainnya. Biasanya dalam 1 aplikasi terdapat MainActivity yang akan ditampilkan pertamakali ketika aplikasi dijalankan. Setiap activity dapat memanggil activity lainnya. Setiap activity baru dimulai, activity sebelumnya akan dihentikan, namun sistem akan memasukkan activitynya ke dalam stack (Last in First Out).

A. Membuat Activity Baru

  1. Pertama, kilik pada app>res>layout> klik kanan pada layout. Setelah itu pilih New>Acitivity> dan pilih Blank Activity.
  2. Selanjutnya, masukkan “Activity Name” dam “Package Name” dan klik tombol Finish.
  3. Setelah itu, Activity baru di layout akan dibuat. Kode XML dalam Teks dan tampilan desain dalam Design.
B. Daur Hidup Activity
Activity memiliki daur hidup yang sudah pasti, perhatikan figure 4 di bawah untuk memahami hal tersebut.
https://blog.dicoding.com/wp-content/uploads/2015/07/Picture1.png

Layout

Sebuah layout android adalah kelas yang mengurusi pengaturan tampilan yang ada di layer. Semua yang berupa View (atau turunan dari View) dapat menjadi child/anak dari sebuah layout. Semua layout diturunkan dari ViewGroup (yang merupakan turunan dari View) jadi layout dapat dibuat bertumpuk (nested).

  1. Layout Standar
Layout standar adalah layout bawaan yang sudah disediakan oleh Android.
      • AbsoluteLayout
      • AbsoulteLayout dilandasi ide simple menempatkan semuanya pada posisi yang absolut(sudah pasti). Dituliskan secara spesifik posisi koordinat x dan y yang ada di layer. Layout ini tidak disarankan dan sudah deprecated
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:layout_width="100dp" android:layout_height="wrap_content" android:text="OK" android:layout_x="50px" android:layout_y="361px" />
<Button android:layout_width="100dp" android:layout_height="wrap_content" android:text="Cancel" android:layout_x="225px" android:layout_y="361px" />
</AbsoluteLayout>
Kode dan hasil dari contoh kode tersebut

      • FrameLayout
      • FrameLayout didesain untuk menampilkan 1 item. Pada 1 FrameLayout dapat memiliki banyak elemen tetapi setiap elemen akan diposisikan Top Left pada layer. Elemen dapat saling overlap satu sama lain. 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:src="@mipmap/ic_launcher" android:scaleType="fitCenter" android:layout_height="250px" android:layout_width="250px"/>
<TextView android:text="Frame Demo" android:textSize="30px" android:textStyle="bold" android:layout_height="fill_parent" android:layout_width="fill_parent" android:gravity="center"/>
</FrameLayout>
        Dapat dilihat dari kode di atas, terdapat ImageView dan TextView yang mengisi parent nya secara horizontal dan vertical. Gravity menentukan dimana text akan tampil di kontainernya, oleh Karena itu di set center. Jika tidak di set gravitynya, text akan tampil pada Top Left. 

        FrameLayout dapat berguna ketika terdapat elemen yang disembunyikan atau ditampilkan secara program.

      • LinearLayout
      • LinearLayout mengatur elemen – elemen dalam 1 garis. Garis tersebut dapat dibuat vertical ataupun horizontal. 
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical" >
<Button android:id="@+id/btnStartService" android:layout_width="270dp"android:layout_height="wrap_content" android:text="start_service"/>
<Button android:id="@+id/btnPauseService" android:layout_width="270dp"android:layout_height="wrap_content" android:text="pause_service"/>
<Button android:id="@+id/btnStopService" android:layout_width="270dp"android:layout_height="wrap_content" android:text="stop_service"/>
</LinearLayout>

        Dan screenshot dengan XML yang sama akan tetapi orientation telah diubah menjadi horizontal
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" >
<Button android:id="@+id/btnStartService" android:layout_width="100dp" android:layout_height="wrap_content" android:text="start_service"/>
<Button android:id="@+id/btnPauseService" android:layout_width="100dp" android:layout_height="wrap_content" android:text="pause_service"/>
<Button android:id="@+id/btnStopService" android:layout_width="100dp" android:layout_height="wrap_content" android:text="stop_service"/>
</LinearLayout

      • RelativeLayout
      • Relative Layout adalah jenis layout yang mengatur tata letak child element menggunakan posisi relatif, yang dimaksud relatif adalah letak suatu child mempunyai ketergantungan dengan child lain atau dengan parent nya.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="16dp" android:paddingRight="16dp" >
<EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="hallo" />
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentStart="true" android:layout_below="@+id/name">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" />
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button2" />
</LinearLayout>
</RelativeLayout>

      • TableLayout
      • Tablelayout mengatur konten dalam barus dan kolom. Baris yang di definisikan dalam layout XML, dan kolom ditentukan otomatis oleh Android. Hal ini dibuat setidaknya satu kolom untuk setiap elemen. Jadi, misalnya, jika memiliki berturut-turut dua elemen dan lima elemen yang juga berturut-turut maka anda memiliki layout dengan 2 baris dan 5 kolom. 

        Suatu elemen harus menempati lebih dari satu kolom menggunakan andorid:layout_span. Hal ini dapat meningkatkan jumlah kolom. Jika kita memiliki 2 elemen berturut-turut dan setiap elemen memiliki android:layout_span= “3” maka setidaknya enam kolom dalam tabel.
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">
<TableRow android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:text="Time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1" />
<TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textClock" android:layout_column="2" />
</TableRow>
<TableRow>
<TextView android:text="First Name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1" />
<EditText android:width="200px" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</TableRow>
<TableRow>
<TextView android:text="Last Name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1" />
<EditText android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="fill_parent">
<RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ratingBar" android:layout_column="2" />
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<TableRow android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" android:id="@+id/button" android:layout_column="2" />
</TableRow>
</TableLayout>



    Source code:
    https://www.tutorialspoint.com

    No comments:

    Post a Comment