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

Postingan populer dari blog ini

Tugas 2 - PPB D

Tugas 5 - Simple Calculator