philipy355 / inflearn-compose

0 stars 0 forks source link

docs : Card, Image, Icon, mutableState객체, @Composable ImageCard (#3) #7

Open philipy355 opened 8 months ago

philipy355 commented 8 months ago
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ImageCard()
        }
    }
}

@Composable
fun ImageCard(){
    //mutableState라는 객체 안에 값이 바뀌는거라서 변수일 필요없이 상수로 해줘도 된다.
    val isFavorite = remember {
        mutableStateOf(false)
    }

    Card(
        modifier = Modifier.fillMaxWidth(0.5f)
            .padding(16.dp),
        shape = RoundedCornerShape(8.dp),
        elevation = CardDefaults.cardElevation(5.dp)
    ){
        Box(
            modifier = Modifier.height(200.dp)
        ){
            Image(
                painter = painterResource(id = R.drawable.poster),
                contentDescription = "poster",
                contentScale = ContentScale.Crop
            )
            Box(
                modifier = Modifier.fillMaxSize(),
                contentAlignment = Alignment.TopEnd
            ){
                IconButton(onClick = {
                    isFavorite.value = !isFavorite.value
                }){
                    Icon(
                        imageVector = if (isFavorite.value) Icons.Default.Favorite else Icons.Default.FavoriteBorder,
                        contentDescription = "favorite",
                        tint = Color.White
                    )
                }
            }
        }
    }
}