119 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
			
		
		
	
	
			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()
 | 
						|
    }
 | 
						|
}
 |