Skip to main content

Image Scroll - Android

 

Nama: Richard Ryan

NRP: 5025211141

Kelas: PPB (G)

Tema: Image Scroll


Link Github :  Github

Penjelasan Kode:


data class ImageItem(val imageResId: Int, val description: String)

val sampleImages = listOf(
    ImageItem(R.drawable.image1, "Pantai saat senja"),
    ImageItem(R.drawable.image2, "Orang mendayung perahu di laut"),
    ImageItem(R.drawable.image3, "Golden Gate"),
    ImageItem(R.drawable.image4, "Gunung di tepi pantai"),
    ImageItem(R.drawable.image5, "Danau")
)

Pertama akan dibuat terlebih dahulu data class untuk menyimpan gambar-gambar yang akan ditampilkan ke sebuah list.


@Composable
fun HomeScreen() {
    LazyColumn(
        modifier = Modifier
            .fillMaxSize()
            .padding(24.dp),
        verticalArrangement = Arrangement.spacedBy(16.dp)
    ) {
        items(sampleImages) { item ->
            ImageCard(imageItem = item)
        }
    }
}

Kemudian, akan dibuat ImageCard untuk setiap item pada list tersebut.

  • Digunakan LazyColumn agar halaman bisa discroll dengan efisien.
  • Halaman diberikan padding sebesar 24 dp di keempat sisi.
  • Setiap gambar dipisahkan dengan jarak sebesar 16 dp.

@Composable
fun ImageCard(imageItem: ImageItem) {
    Card(
        modifier = Modifier.fillMaxWidth()
    ) {
        Column {
            Image(
                painter = painterResource(id = imageItem.imageResId),
                contentDescription = imageItem.description,
                modifier = Modifier
                    .fillMaxWidth()
                    .aspectRatio(16f / 9f),
                contentScale = ContentScale.Crop
            )
            Text(
                text = imageItem.description,
                fontSize = 16.sp,
                modifier = Modifier.padding(16.dp),
                style = MaterialTheme.typography.bodyMedium
            )
        }
    }
}

Setiap ImageCard terdiri dari sebuah gambar dan teks deskripsi, kedua hal ini akan diambil dari setiap item pada dipassing.

Hasil







Comments

Popular posts from this blog

Starbucks Clone - Android

  Nama: Richard Ryan NRP: 5025211141 Kelas: PPB (G) Tema: Aplikasi Starbucks Link Github :  Github Hasil

Trash2Cash

  Trash2Cash Aplikasi Manajemen Bank Sampah

Simple Calculator - Android

  Nama: Richard Ryan NRP: 5025211141 Kelas: PPB (G) Tema: Calculator Link Github :   Github Penjelasan Kode Pertama buat variabel yang akan digunakan untuk menyimpan persamaan dan hasilnya var equation by remember { mutableStateOf("") } var result by remember { mutableStateOf("") } Setelah itu buat beberapa fungsi utility yang akan digunakan untuk memproses / menghitung persamaan Fungsi calc() akan menggunakan Expression() dari library  org.mariuszgromada.math.mxparser.Expression yang dapat digunakan untuk mendapatkan nilai suatu persamaan dari string ekspresi Fungsi addToEq()  digunakan untuk menambahkan karakter ke persamaan Fungsi clearEq() digunakan untuk menghapus persamaan yang ada Fungsi dropLast() digunakan untuk menghapus karakter terakhir dari fungsi Fungsi equals() digunakan untuk memindahkan hasil perhitungan ke persamaan sehingga dapat mempermudah perhitungan berikutnya Fungsi calc() akan dipanggil sebagai langkah pertama setiap fungsi...