Add splashScreen

This commit is contained in:
Michael Kits
2022-11-05 11:50:35 +03:00
parent 1941524340
commit b614ae82d2
5 changed files with 72 additions and 12 deletions
@@ -13,8 +13,10 @@ import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.Dp
import com.vk.api.sdk.VK
import com.vk.api.sdk.VKApiCallback
@@ -44,6 +46,9 @@ fun Dp.SpacerWidth() = Spacer(Modifier.width(this))
@Composable
fun Dp.SpacerHeight() = Spacer(Modifier.height(this))
@Composable
fun Int.AsImageVector() = ImageVector.vectorResource(this)
class MainActivity : ComponentActivity() {
@@ -7,6 +7,9 @@ import androidx.navigation.compose.rememberNavController
import ru.megboyzz.studentq.screens.*
sealed class AppNavRoute(val route: String){
object Splash : AppNavRoute("splash_screen")
object Auth: AppNavRoute("auth_screen")
object Queues: AppNavRoute("all_queues_screen")
object Queue: AppNavRoute("in_queue_screen")
@@ -19,8 +22,9 @@ fun AppNavHost(){
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = AppNavRoute.Auth.route
startDestination = AppNavRoute.Splash.route
){
composable(AppNavRoute.Splash.route) { SplashScreen(navController) }
composable(AppNavRoute.Auth.route) { Auth(navController) }
composable(AppNavRoute.Queues.route) { Queues(navController) }
composable(AppNavRoute.Queue.route) { Queue(navController) }
@@ -0,0 +1,61 @@
package ru.megboyzz.studentq.screens
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.size
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Email
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
import kotlinx.coroutines.delay
import ru.megboyzz.studentq.AsImageVector
import ru.megboyzz.studentq.AsPainter
import ru.megboyzz.studentq.R
import ru.megboyzz.studentq.navigation.AppNavRoute
@Composable
fun SplashScreen(navHostController: NavHostController){
var startAnimation by remember { mutableStateOf(false) }
val alphaAnim = animateFloatAsState(
targetValue = if (startAnimation) 1f else 0f,
animationSpec = tween(
durationMillis = 1000
)
)
LaunchedEffect(key1 = true) {
startAnimation = true
delay(1000)
navHostController.popBackStack()
navHostController.navigate(AppNavRoute.Auth.route)
}
Splash(alpha = alphaAnim.value)
}
@Composable
fun Splash(alpha: Float) {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Icon(
modifier = Modifier
.size(120.dp)
.alpha(alpha = alpha),
imageVector = R.drawable.icon.AsImageVector(),
contentDescription = "Logo Icon",
tint = Color.White
)
}
}
-10
View File
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>
+1 -1
View File
@@ -2,6 +2,6 @@
<resources>
<style name="Theme.Studentq" parent="android:Theme.Material.Light.NoActionBar">
<item name="android:statusBarColor">@color/purple_700</item>
<item name="android:statusBarColor">#CCE6195E</item>
</style>
</resources>