2025-10-16 19:19:09 +07:00

119 lines
3.5 KiB
Kotlin

package com.example.businesscard
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.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Email
import androidx.compose.material.icons.filled.Phone
import androidx.compose.material.icons.filled.Share
import androidx.compose.material3.Icon
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.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.businesscard.ui.theme.BusinessCardTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
BusinessCardTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = Color(0xFFD2E8D4)
) {
BusinessCard()
}
}
}
}
}
@Composable
fun BusinessCard() {
Box(
modifier = Modifier
.fillMaxSize()
.background(Color(0xFFD2E8D4))
) {
Column(
modifier = Modifier.align(Alignment.Center),
horizontalAlignment = Alignment.CenterHorizontally
) {
val image = painterResource(id = R.drawable.android_logo)
Image(
painter = image,
contentDescription = "Android Logo",
modifier = Modifier
.size(120.dp)
.background(Color(0xFF073042))
.padding(16.dp)
)
Spacer(modifier = Modifier.height(16.dp))
Text(
text = "Markco Van Nistelrooy Sitanggang",
fontSize = 25.sp,
color = Color.Black
)
Text(
text = "Software Developer",
fontWeight = FontWeight.Bold,
color = Color(0xFF006E37)
)
}
Column(
horizontalAlignment = Alignment.Start,
modifier = Modifier
.align(Alignment.BottomCenter)
.padding(bottom = 40.dp)
.width(260.dp)
) {
ContactRow(Icons.Default.Phone, "+62 1111 1111 1111")
ContactRow(Icons.Default.Share, "@AndroidDev")
ContactRow(Icons.Default.Email, "markcogg130105.com")
}
}
}
@Composable
fun ContactRow(icon: androidx.compose.ui.graphics.vector.ImageVector, text: String) {
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(vertical = 4.dp)
) {
Icon(
imageVector = icon,
contentDescription = null,
tint = Color(0xFF006E37),
modifier = Modifier.size(20.dp)
)
Spacer(modifier = Modifier.width(16.dp))
Text(
text = text,
fontSize = 14.sp,
color = Color.Black
)
}
}
@Preview(showBackground = true)
@Composable
fun BusinessCardPreview() {
BusinessCardTheme {
BusinessCard()
}
}