PBB Tugas 6 Implementasi Image Scroll
Nama : Marsyavero Charisyah Putra
NRP : 502520112
Kelas : PBB-F
Tahun 2024
Pada tugas 6 ini, saya melakukan implementasi image scroll menggunakan Android Studio. Terlampir Source Code dan Screenshot UI dari hasil implementasi image scroll pada blog ini.
package com.example.affirmations 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.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Card import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext 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.affirmations.data.Datasource import com.example.affirmations.model.Affirmation import com.example.affirmations.ui.theme.AffirmationsTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { AffirmationsTheme { // A surface container using the 'background' color from the theme Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { AffirmationsApp() } } } } } @Composable fun AffirmationsApp() { AffirmationList( affirmationList = Datasource().loadAffirmations(), ) } @Composable fun AffirmationList(affirmationList: List<Affirmation>, modifier: Modifier = Modifier) { LazyColumn(modifier = modifier) { items(affirmationList) { affirmation -> AffirmationCard( affirmation = affirmation, modifier = Modifier.padding(8.dp) ) } } } @Composable fun AffirmationCard(affirmation: Affirmation, modifier: Modifier = Modifier) { Card(modifier = modifier) { Column { Image( painter = painterResource(affirmation.imageResourceId), contentDescription = stringResource(affirmation.stringResourceId), modifier = Modifier .fillMaxWidth() .height(194.dp), contentScale = ContentScale.Crop ) Text( text = LocalContext.current.getString(affirmation.stringResourceId), modifier = Modifier.padding(16.dp), style = MaterialTheme.typography.headlineSmall ) } } } @Preview @Composable private fun AffirmationCardPreview() { AffirmationCard(Affirmation(R.string.affirmation1, R.drawable.image1)) }
Comments
Post a Comment