Tugas 3 - PPB D
Nama : Widian Sasi Disertasiani
NRP : 5025211024
Kelas : PPB D
Materi : Happy Birthday Card
package com.example.happybirthdayapplication
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Card
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.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.happybirthdayapplication.ui.theme.HappyBirthdayApplicationTheme
import androidx.compose.material3.CardDefaults
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
HappyBirthdayApplicationTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = Color(0xFFFFF0F5)
) {
BackgroundWithOrnaments()
BirthdayCard()
}
}
}
}
}
@Composable
fun BackgroundWithOrnaments() {
Box(modifier = Modifier.fillMaxSize()) {
Image(
painter = painterResource(id = R.drawable.kocengg),
contentDescription = "Ornament",
modifier = Modifier
.size(80.dp)
.absoluteOffset(x = 20.dp, y = 50.dp)
)
Image(
painter = painterResource(id = R.drawable.ayammm),
contentDescription = "Ornament",
modifier = Modifier
.size(100.dp)
.absoluteOffset(x = 250.dp, y = 400.dp)
)
}
}
@Composable
fun BirthdayCard() {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Card(
modifier = Modifier
.padding(16.dp)
.clip(RoundedCornerShape(16.dp)),
colors = CardDefaults.cardColors(containerColor = Color.White),
elevation = CardDefaults.cardElevation(defaultElevation = 4.dp) // Corrected elevation usage
) {
Column(
modifier = Modifier.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Image(
painter = painterResource(id = R.drawable.cute_cake), // Ensure this exists in res/drawable
contentDescription = "Birthday Cake",
modifier = Modifier.size(120.dp)
)
Spacer(modifier = Modifier.height(16.dp))
Text(
text = "Happy Birthday Eci!",
fontSize = 24.sp,
fontWeight = FontWeight.Bold,
color = Color.Magenta
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = "- From Ogik -",
fontSize = 18.sp,
fontWeight = FontWeight.Medium,
color = Color.Gray
)
}
}
}
}
@Preview(showBackground = true)
@Composable
fun BirthdayCardPreview() {
HappyBirthdayApplicationTheme {
BirthdayCard()
}
}
Github : Tugas 3
Youtube : Demo Tugas 3
Komentar
Posting Komentar