Tugas PPB - Membuat Aplikasi Happy Birthday (Composable)
Nama : Mavaldi Rizqy Hazdi
NRP : 5025211086
Kelas : Pemrograman Perangkat Bergerak D
Tugas kali ini adalah membuat aplikasi Happy Birthday dengan Composable berdasarkan langkah-langkah pada link berikut Composable Tutorial. Serta akan dilakukan beberapa modifikasi pada aplikasi setelah mengikuti tutorial.
File MainActivity.kt :
package com.example.happybirthday
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
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.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontFamily
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 {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
BirthdayCard()
}
}
}
}
}
@Composable
fun BirthdayCard() {
Box(modifier = Modifier.fillMaxSize()) {
Image(
painter = painterResource(id = R.drawable.birthday_background), // Add background in res/drawable
contentDescription = null,
contentScale = ContentScale.Crop,
modifier = Modifier.fillMaxSize()
)
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize()
) {
GreetingText(
message = "Happy Birthday Sam!",
from = "From Emma",
modifier = Modifier.padding(16.dp)
)
}
}
}
@Composable
fun GreetingText(message: String, from: String, modifier: Modifier = Modifier) {
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = modifier
.padding(16.dp)
.fillMaxWidth()
) {
Text(
text = message,
fontSize = 35.sp,
fontWeight = FontWeight.Bold,
fontFamily = FontFamily.Monospace,
color = Color.White,
textAlign = TextAlign.Center,
modifier = Modifier.padding(8.dp)
)
Text(
text = from,
fontSize = 24.sp,
fontWeight = FontWeight.SemiBold,
fontFamily = FontFamily.Cursive,
color = Color.White,
modifier = Modifier
.padding(16.dp)
.align(alignment = Alignment.End)
)
}
}
@Preview(showBackground = true)
@Composable
fun BirthdayCardPreview() {
HappyBirthdayTheme {
BirthdayCard()
}
}
Tampilan Aplikasi sebelum dimodifikasi
Tampilan Aplikasi setelah beberapa modifikasi pada bagian background dan font
* Untuk mengganti background, file image harus ditambahkan pada folder res/drawable dan rename sesuai dengan nama pada kode.
Link Repositori : Github
Vidio Presentasi :
Komentar
Posting Komentar