commit
d165f1a39b
@ -0,0 +1,139 @@
|
|||||||
|
package com.example.what_the_fantasy.ui.screens
|
||||||
|
|
||||||
|
import androidx.compose.foundation.Image
|
||||||
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.Spacer
|
||||||
|
import androidx.compose.foundation.layout.fillMaxHeight
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
|
import androidx.compose.foundation.layout.width
|
||||||
|
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.layout.ContentScale
|
||||||
|
import androidx.compose.ui.res.painterResource
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.navigation.NavController
|
||||||
|
import androidx.navigation.compose.NavHost
|
||||||
|
import androidx.navigation.compose.composable
|
||||||
|
import androidx.navigation.compose.rememberNavController
|
||||||
|
import com.example.what_the_fantasy.R
|
||||||
|
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun QuizAccueil(navController: NavController) {
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxSize()
|
||||||
|
.background(Color(0xFF100C1B))
|
||||||
|
.padding(top = 100.dp)
|
||||||
|
) {
|
||||||
|
Spacer(modifier = Modifier.weight(0.1f))
|
||||||
|
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.weight(0.9f)
|
||||||
|
.fillMaxHeight(),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
|
) {
|
||||||
|
Box(
|
||||||
|
modifier = Modifier
|
||||||
|
.size(width = 150.dp, height = 100.dp)
|
||||||
|
.padding(8.dp)
|
||||||
|
.clickable {
|
||||||
|
navController.navigate("quizPage")
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Quiz 1",
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
contentScale = ContentScale.Crop
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
Box(
|
||||||
|
modifier = Modifier
|
||||||
|
.size(width = 150.dp, height = 100.dp)
|
||||||
|
.padding(8.dp)
|
||||||
|
.clickable {
|
||||||
|
|
||||||
|
navController.navigate("quizPage")
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Quiz 2",
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
contentScale = ContentScale.Crop
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer(modifier = Modifier.width(10.dp))
|
||||||
|
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.weight(0.9f)
|
||||||
|
.fillMaxHeight(),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
|
) {
|
||||||
|
Box(
|
||||||
|
modifier = Modifier
|
||||||
|
.size(width = 150.dp, height = 100.dp)
|
||||||
|
.padding(8.dp)
|
||||||
|
.clickable {
|
||||||
|
navController.navigate("quizPage")
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Quiz 3",
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
contentScale = ContentScale.Crop
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
Box(
|
||||||
|
modifier = Modifier
|
||||||
|
.size(width = 150.dp, height = 100.dp)
|
||||||
|
.padding(8.dp)
|
||||||
|
.clickable {
|
||||||
|
navController.navigate("quizPage")
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Quiz 4",
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
contentScale = ContentScale.Crop
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer(modifier = Modifier.weight(0.1f))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun QuizApp() {
|
||||||
|
val navController = rememberNavController()
|
||||||
|
|
||||||
|
NavHost(navController = navController, startDestination = "quizEndPage") {
|
||||||
|
composable("quizAccueil") {
|
||||||
|
QuizAccueil(navController = navController)
|
||||||
|
}
|
||||||
|
composable("quizPage") {
|
||||||
|
QuizPage(navController = navController)
|
||||||
|
}
|
||||||
|
composable("quizEndPage") {
|
||||||
|
QuizEndPage(5, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,163 @@
|
|||||||
|
package com.example.what_the_fantasy.ui.screens
|
||||||
|
|
||||||
|
import androidx.compose.foundation.Image
|
||||||
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.layout.*
|
||||||
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
|
import androidx.compose.material3.IconButton
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.geometry.Offset
|
||||||
|
import androidx.compose.ui.graphics.Brush
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.res.painterResource
|
||||||
|
import androidx.compose.ui.text.TextStyle
|
||||||
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.compose.ui.unit.sp
|
||||||
|
import com.example.what_the_fantasy.R
|
||||||
|
import com.example.what_the_fantasy.data.local.QuestionStub
|
||||||
|
|
||||||
|
val gradient = Brush.linearGradient(
|
||||||
|
colors = listOf(Color(0xFF7B1FA2), Color(0xFF311B92)),
|
||||||
|
start = Offset(0f, 1000f),
|
||||||
|
end = Offset(1000f, 0f)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun QuizEndPage(points: Int, idQuiz: Int) {
|
||||||
|
Column(
|
||||||
|
modifier = Modifier.fillMaxSize().background(Color(0xFF100C1B))
|
||||||
|
) {
|
||||||
|
// Bandeau supérieur
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.weight(0.1f)
|
||||||
|
.background(Color(0xFF300052))
|
||||||
|
.padding(20.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
IconButton(onClick = { }) {
|
||||||
|
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Retour", tint = Color.White)
|
||||||
|
}
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Profil",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Profil",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contenu principal
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.weight(0.8f)
|
||||||
|
.padding(horizontal = 50.dp, vertical = 20.dp)
|
||||||
|
.fillMaxWidth(),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "▶ Résultats ◀",
|
||||||
|
color = Color.White,
|
||||||
|
style = TextStyle(fontSize = 25.sp, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center)
|
||||||
|
)
|
||||||
|
Spacer(modifier = Modifier.height(16.dp))
|
||||||
|
Column (
|
||||||
|
modifier = Modifier
|
||||||
|
.background(brush = gradient, shape = RoundedCornerShape(20.dp))
|
||||||
|
.padding(30.dp)
|
||||||
|
.fillMaxSize(),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
|
) {
|
||||||
|
Text (
|
||||||
|
text = "Quiz N°$idQuiz",
|
||||||
|
color = Color.White,
|
||||||
|
style = TextStyle(fontSize = 25.sp, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center)
|
||||||
|
)
|
||||||
|
|
||||||
|
val nbQuestions = QuestionStub.allQuestions.size
|
||||||
|
|
||||||
|
Text (
|
||||||
|
text = "Nombres de Questions : $nbQuestions",
|
||||||
|
color = Color.White,
|
||||||
|
style = TextStyle(fontSize = 15.sp, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center)
|
||||||
|
)
|
||||||
|
Text (
|
||||||
|
text = "Nombres de bonnes réponses : $points",
|
||||||
|
color = Color.White,
|
||||||
|
style = TextStyle(fontSize = 15.sp, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center)
|
||||||
|
)
|
||||||
|
Row (
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth(),
|
||||||
|
horizontalArrangement = Arrangement.SpaceAround
|
||||||
|
) {
|
||||||
|
// Bouton Quiz Précédent
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Profil",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
// Bouton Retour Menu Quiz
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Profil",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
// Bouton Quiz Suivant
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Profil",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bandeau inférieur
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.weight(0.1f)
|
||||||
|
.background(Color(0xFF300052))
|
||||||
|
.padding(20.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceAround,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
// Bouton Likes
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Bouton",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
// Bouton WhatTheFantasy
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Bouton",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
// Bouton Quiz
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = R.drawable.quiz),
|
||||||
|
contentDescription = "Bouton",
|
||||||
|
modifier = Modifier.size(50.dp).background(Color.Yellow, CircleShape)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 13 KiB |
Loading…
Reference in new issue