Pendahuluan
Pada pertemuan ketiga kuliah Pemrograman Perangkat Bergerak kali ini kita akan mempelajari tentang Composable pada JetPack Compose. Latihan pada pertemuan kali ini kita akan membuat sebuah proyek menggunakan template Empty Activity untuk mengubah pesan teks menjadi ucapan ulang tahun secara personal.
Membuat Proyek Ucapan Ulang Tahun
Sekarang kita akan membuat proyek baru kita dengan menggunakan template yang sudah ada pada Android Studio. Disini kita akan memilih template Empty Activity kembali sama seperti proyek sebelumnya. Pada proyek ini kita akan membuat sebuah proyek sederhana yang menampilkan ucapan "Selamat Ulang Tahun". Selain itu kita akan mengubah ukuran dari teks yang ditampilkan.
- Membuka Android Studio dan memilih opsi "Empty Activity".
- Setelah memilih template Empty Activity kita akan memilih level API minimum untuk proyek kita, disini kita akan memilih API 24 (Nougat)
- Setelah memilih opsi tersebut tunggu hingga semua kode dimuat.
- Kemudian kita akan menulis kode sesuai dengan panduan yang sudah dijelaskan di kelas pada pertemuan kemarinThis file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
package com.example.happybirthday import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.example.happybirthday.ui.theme.HappyBirthdayTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { HappyBirthdayTheme { // A surface container using the 'background' color from the theme Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ){ GreetingText( message = "Happy Birthday Fuad!", from = "From Salim", modifier = Modifier.padding(8.dp) ) } } } } } @Composable fun GreetingText(message : String,from : String,modifier: Modifier = Modifier) { Column( verticalArrangement = Arrangement.Center, modifier = modifier.padding(8.dp) ){ Text( text = message, fontSize = 100.sp, lineHeight = 116.sp, textAlign = TextAlign.Center ) Text( text = from, fontSize = 36.sp, modifier = Modifier .padding(16.dp) .align(alignment = Alignment.End) ) } } @Preview(showBackground = true) @Composable fun BirthdayCardPreview() { HappyBirthdayTheme { GreetingText(message = "Happy Birthday Fuad!", from = "From Salim") } }
Setelah itu kita bisa langsung jalankan kode yang sudah kita tulis hingga tampilan Android Studio seperti ini.
Setelah berhasil menjalankan kode sebelumnya kita bisa melakukan sedikit modifikasi untuk mempercantik tampilan dari ucapan "Selamat Ulang Tahun". Disini saya memodifikasi kode ini dengan membuat sebuah card yang berisi ucapan Selamat Ulang Tahun versi saya seperti ini.
Berikut adalah kode proyek yang sudah saya modifikasi :
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.happybirthday | |
import android.icu.text.AlphabeticIndex.Bucket.LabelType | |
import android.os.Bundle | |
import androidx.activity.ComponentActivity | |
import androidx.activity.compose.setContent | |
import androidx.compose.foundation.Image | |
import androidx.compose.foundation.background | |
import androidx.compose.foundation.layout.Arrangement | |
import androidx.compose.foundation.layout.Box | |
import androidx.compose.foundation.layout.Column | |
import androidx.compose.foundation.layout.fillMaxSize | |
import androidx.compose.foundation.layout.height | |
import androidx.compose.foundation.layout.padding | |
import androidx.compose.foundation.layout.width | |
import androidx.compose.foundation.shape.RoundedCornerShape | |
import androidx.compose.material3.Card | |
import androidx.compose.material3.CardDefaults | |
import androidx.compose.material3.MaterialTheme | |
import androidx.compose.material3.Surface | |
import androidx.compose.material3.Text | |
import androidx.compose.runtime.Composable | |
import androidx.compose.ui.Alignment | |
import androidx.compose.ui.Modifier | |
import androidx.compose.ui.draw.scale | |
import androidx.compose.ui.graphics.Color | |
import androidx.compose.ui.res.painterResource | |
import androidx.compose.ui.text.font.FontWeight | |
import androidx.compose.ui.text.style.TextAlign | |
import androidx.compose.ui.tooling.preview.Preview | |
import androidx.compose.ui.unit.dp | |
import androidx.compose.ui.unit.sp | |
import com.example.happybirthday.ui.theme.HappyBirthdayTheme | |
class MainActivity : ComponentActivity() { | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContent { | |
HappyBirthdayTheme { | |
// A surface container using the 'background' color from the theme | |
Surface( | |
modifier = Modifier.fillMaxSize(), | |
color = MaterialTheme.colorScheme.background | |
){ | |
GreetingText( | |
message = "Happy Birthday Fuad!", | |
from = "From Salim", | |
modifier = Modifier.padding(16.dp) | |
) | |
} | |
} | |
} | |
} | |
} | |
@Composable | |
fun GreetingText(message : String,from : String, modifier: Modifier = Modifier) { | |
Box( | |
modifier = Modifier.fillMaxSize(), | |
contentAlignment = Alignment.Center | |
){ | |
Card( | |
modifier = Modifier | |
.width(350.dp) | |
.height(550.dp), | |
elevation = CardDefaults.cardElevation(10.dp), | |
colors = CardDefaults.cardColors( | |
containerColor = Color.White | |
) | |
) | |
{ | |
Column( | |
horizontalAlignment = Alignment.CenterHorizontally, | |
modifier = Modifier.fillMaxSize(), | |
){ | |
Image(painter = painterResource(id = R.drawable.kueulangtahun), contentDescription = "null", | |
modifier = Modifier.scale(scale = 1f).padding(bottom = 0.dp, top = 40.dp)) | |
Text( | |
text = message, | |
fontWeight = FontWeight.SemiBold, | |
fontSize = 30.sp, | |
lineHeight = 20.sp, | |
textAlign = TextAlign.Center, | |
modifier = Modifier.padding(horizontal = 16.dp) | |
) | |
Text( | |
text = from, | |
color = Color.Gray, | |
fontSize = 24.sp, | |
lineHeight = 30.sp, | |
textAlign = TextAlign.Center, | |
modifier = Modifier | |
.padding(bottom = 24.dp, top = 16.dp, start = 16.dp, end = 16.dp ) | |
) | |
Text( | |
text = "Barakallahš¤", | |
color = Color.White, | |
fontSize = 24.sp, | |
fontWeight = FontWeight.SemiBold, | |
modifier = Modifier | |
.background(Color(android.graphics.Color.parseColor("#FC245D")),shape = RoundedCornerShape(8.dp)) | |
.width(200.dp) | |
.padding(horizontal = 20.dp, vertical = 16.dp) | |
) | |
} | |
} | |
} | |
} | |
@Preview(showBackground = true) | |
@Composable | |
fun BirthdayCardPreview() { | |
HappyBirthdayTheme { | |
GreetingText(message = "Happy Birthday!", from = "Kami Ucapkan Selamat untuk Kamuš") | |
} | |
} |
Comments
Post a Comment