Tugas 6 - Pemograman Perangkat Bergeral
Nama : Sayid Ziyad Ibrahim Alaydrus
NRP : 5025201147
NRP : 5025201147
Kelas : PPB F
Tugas : membuat Image Scroll
1. mendowload resource pada github:
2. membuat model pada package affirmation
3. membuat file kotlin di DataSource affirmation untuk menampung gambar-gambar yang dibutuhkan dan uncomment kode.
4. menambahkan kode pada mainactivity.kt seperti berikut
- /*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 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 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(
- showSystemUi = true,
- showBackground = true
- )
- @Composable
- private fun AffirmationCardPreview() {
- AffirmationCard(affirmation = Affirmation(R.string.affirmation1, R.drawable.image1))
- }
- @Composable
- fun AffirmationList(affirmationList: List<Affirmation>, modifier: Modifier = Modifier){
- LazyColumn (modifier = modifier){
- items(affirmationList){affirmation ->
- AffirmationCard(affirmation,
- modifier = Modifier.padding(16.dp),
- )
- }
- }
- }
5. hasil dan dokumentasi
Comments
Post a Comment