Tugas PPB 8 Membuat Image Scroll dengan menggunakan Desain Material

 

 TUGAS PPB 8

Membuat Image Scroll dengan menggunakan Desain Material
Nama: Fayyadh Hafizh
NRP : 5025201164
Kelas: PPB I
Link Github: Tugas 8

Halo temen-temen semuanya! Pada kesempatan kali ini, kita akan mencoba membuat sebuah aplikasi yang dapat digunakan untuk melihat beberapa gambar dengan mengimplementasikan scrolling agar gambar dapat ditampilkan secukupnya dalam satu layar. Gambar lainnya dapat dilihat dengan melakukan scrolling pada layar tersebut.

  • Kode Implementasi
  • package com.fydhfzh.imagescroll
    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.fydhfzh.imagescroll.data.Datasource
    import com.fydhfzh.imagescroll.model.Affirmation
    import com.fydhfzh.imagescroll.ui.theme.ImageScrollTheme
    class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
    ImageScrollTheme {
    // A surface container using the 'background' color from the theme
    Surface(
    modifier = Modifier.fillMaxSize(),
    color = MaterialTheme.colorScheme.background
    ) {
    AffirmationApp()
    }
    }
    }
    }
    }
    @Composable
    fun AffirmationApp(){
    AffirmationList(affirmationList = Datasource().loadAffirmations())
    }
    @Composable
    fun AffirmationCard(affirmation: Affirmation, modifier: Modifier = Modifier){
    Card(modifier = modifier) {
    Column {
    Image(painter = painterResource(id = affirmation.imageResourceId),
    contentDescription = stringResource(id = affirmation.stringResourceId),
    modifier = modifier
    .fillMaxWidth()
    .height(194.dp),
    contentScale = ContentScale.Crop
    )
    Text(
    text = stringResource(id = affirmation.stringResourceId),
    modifier = modifier.padding(16.dp),
    style = MaterialTheme.typography.headlineSmall
    )
    }
    }
    }
    @Composable
    fun AffirmationList(affirmationList: List<Affirmation>, modifier: Modifier = Modifier) {
    LazyColumn(modifier = modifier) {
    items(affirmationList) {
    affirmation -> AffirmationCard(affirmation = affirmation, modifier = modifier.padding(8.dp))
    }
    }
    }
    @Preview
    @Composable
    private fun ImageScrollPreview(){
    AffirmationCard(affirmation = Affirmation(R.string.affirmation1, R.drawable.image1))
    }
    view raw MainActivity.kt hosted with ❤ by GitHub

  • Hasil




Komentar

Postingan populer dari blog ini

Tugas PPB 13 Membuat Aplikasi Musik