Tugas 4
Nama : Adinda Zahra Pamuji
NRP : 5025201175
Kelas : PPB I
Tugas kali ini adalah membuat aplikasi android Dice Roller
Membuat project Empty Activity
- Dalam dialog Welcome to Android Studio, pilih New Project.
- Dalam dialog New Project, pilih Empty Activity, lalu klik Next.
- Di kolom Name, masukkan Dice Roller, lalu pilih level API minimum 24 (Nougat) di kolom Minimum SDK dan klik Finish.
- Tunggu hingga Android Studio membuat file project dan membangun project tersebut.
- Klik Run App
Selanjutnya, kita akan memodifikasi file MainActivity menjadi seperti berikut
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.diceroller | |
import android.os.Bundle | |
import androidx.activity.ComponentActivity | |
import androidx.activity.compose.setContent | |
import androidx.compose.foundation.Image | |
import androidx.compose.foundation.layout.Column | |
import androidx.compose.foundation.layout.Spacer | |
import androidx.compose.foundation.layout.fillMaxSize | |
import androidx.compose.foundation.layout.height | |
import androidx.compose.foundation.layout.wrapContentSize | |
import androidx.compose.material3.Button | |
import androidx.compose.material3.MaterialTheme | |
import androidx.compose.material3.Surface | |
import androidx.compose.material3.Text | |
import androidx.compose.runtime.Composable | |
import androidx.compose.runtime.mutableStateOf | |
import androidx.compose.runtime.remember | |
import androidx.compose.ui.Alignment | |
import androidx.compose.ui.Modifier | |
import androidx.compose.ui.res.painterResource | |
import androidx.compose.ui.res.stringResource | |
import androidx.compose.ui.tooling.preview.Preview | |
import androidx.compose.ui.unit.dp | |
import com.example.diceroller.ui.theme.DiceRollerTheme | |
import androidx.compose.runtime.* | |
class MainActivity : ComponentActivity() { | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContent { | |
DiceRollerTheme { | |
DiceRollerApp() | |
} | |
} | |
} | |
} | |
@Preview | |
@Composable | |
fun DiceRollerApp() { | |
DiceRollerWithImageAndButton(modifier = Modifier | |
.fillMaxSize() | |
.wrapContentSize(align = Alignment.Center) | |
) | |
} | |
@Composable | |
fun DiceRollerWithImageAndButton(modifier: Modifier = Modifier) { | |
var result by remember { mutableStateOf(1) } | |
val imageResource = when (result) { | |
1 -> R.drawable.dice_1 | |
2 -> R.drawable.dice_2 | |
3 -> R.drawable.dice_3 | |
4 -> R.drawable.dice_4 | |
5 -> R.drawable.dice_5 | |
else -> R.drawable.dice_6 | |
} | |
Column ( | |
modifier = modifier, | |
horizontalAlignment = Alignment.CenterHorizontally | |
) { | |
Image( | |
painter = painterResource(id = imageResource), | |
contentDescription = result.toString() | |
) | |
Spacer(modifier = Modifier.height(16.dp)) | |
Button(onClick = { result = (1..6).random() }) { | |
Text(stringResource(R.string.roll)) | |
} | |
} | |
} |
Comments
Post a Comment