JetPack Composable - сделайте изменение изображения после нажатия на егоAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 JetPack Composable - сделайте изменение изображения после нажатия на его

Сообщение Anonymous »

В настоящее время я работаю над простым приложением в Android Studio из курса, доступного онлайн для Kotlin. Общая идея состоит в том, чтобы сделать изображение в центре, кликабельно и изменить изображение всякий раз, когда будет выполнено определенное количество кликов.
На 1 -м изображении я должен щелкнуть один раз. Чтобы разместить все элементы на экране, и изображение кликабельно. Я вижу, что переменная текущегопозиции увеличивается, но в приложении нет никаких изменений, которое используется в приложении. Я понимаю, что это может быть какой -то новичок, но я нахожусь в начале своего пути в Kotlin и Android Studio. < /P>
может кто -нибудь помочь мне в этом случае? Я буду очень обязан. Весь код размещен ниже: < /p>
package com.example.lemonade

import android.os.Bundle
import android.text.style.BackgroundColorSpan
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
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.layout.size
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.shape.AbsoluteCutCornerShape
import androidx.compose.foundation.shape.AbsoluteRoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.modifier.modifierLocalConsumer
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.lemonade.ui.theme.LemonadeTheme

class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LemonadeTheme {
LemonadeWithTextAndImage()
}
}
}
}

@Preview
@Composable
fun LemonadeApp() {
LemonadeWithTextAndImage()
}

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun LemonadeWithTextAndImage(
modifier: Modifier = Modifier
.fillMaxSize()
.wrapContentSize(Alignment.Center)
.background(color = Color.White)
) {
var currentPosition = 1
var numberOfClicks = (2..4).random()
var beforeLast = 1 + numberOfClicks + 1
var imageSource = when (currentPosition) {
1 -> R.drawable.lemon_tree
numberOfClicks -> R.drawable.lemon_squeeze
beforeLast -> R.drawable.lemon_drink
else -> R.drawable.lemon_restart
}
var totalNumberOfClicks = beforeLast++;

Column(
modifier = modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally
) {
CenterAlignedTopAppBar(
title = {
Text("Lemonade")
},
colors = TopAppBarDefaults.smallTopAppBarColors(
containerColor = Color.Yellow,
titleContentColor = Color.Black
)
)
Spacer(modifier = Modifier.height(200.dp))
Image(
painter = painterResource(id = imageSource),
contentDescription = imageSource.toString(),
Modifier
.clickable {
println("The current position is $currentPosition")
currentPosition++
painterResource(id = currentPosition)
}
.background(
color = Color(R.color.icons_background),
shape = AbsoluteRoundedCornerShape(10)
)
)
Spacer(modifier = Modifier.height(16.dp))
Text(text = stringResource(id = R.string.tap_the_lemon_tree))

}
}


Подробнее здесь: https://stackoverflow.com/questions/772 ... clicked-on
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»