Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.waifushowcase
- import android.os.Bundle
- import androidx.activity.ComponentActivity
- import androidx.activity.compose.setContent
- import androidx.activity.enableEdgeToEdge
- import androidx.annotation.DrawableRes
- import androidx.annotation.StringRes
- import androidx.compose.foundation.Image
- import androidx.compose.foundation.background
- import androidx.compose.foundation.border
- import androidx.compose.foundation.layout.Arrangement
- 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.aspectRatio
- import androidx.compose.foundation.layout.fillMaxSize
- import androidx.compose.foundation.layout.fillMaxWidth
- import androidx.compose.foundation.layout.height
- import androidx.compose.foundation.layout.offset
- import androidx.compose.foundation.layout.padding
- import androidx.compose.foundation.layout.size
- import androidx.compose.foundation.shape.RoundedCornerShape
- import androidx.compose.material3.Button
- import androidx.compose.material3.Scaffold
- import androidx.compose.material3.Text
- import androidx.compose.runtime.Composable
- import androidx.compose.runtime.mutableStateOf
- import androidx.compose.runtime.remember
- import androidx.compose.ui.Modifier
- import androidx.compose.ui.graphics.Color
- import androidx.compose.ui.graphics.painter.Painter
- 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.waifushowcase.ui.theme.WaifuShowcaseTheme
- import androidx.compose.runtime.getValue
- import androidx.compose.runtime.mutableIntStateOf
- import androidx.compose.runtime.setValue
- import androidx.compose.ui.Alignment
- import androidx.compose.ui.draw.clip
- import androidx.compose.ui.draw.shadow
- import androidx.compose.ui.text.style.LineHeightStyle
- class MainActivity : ComponentActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- enableEdgeToEdge()
- setContent {
- WaifuShowcaseTheme {
- WaifuApp()
- }
- }
- }
- }
- // Data class for waifus
- data class Waifu(
- @DrawableRes val imageRes: Int,
- val name: String,
- val description: String
- )
- // main screen
- @Composable
- fun WaifuApp(modifier: Modifier = Modifier) {
- var currentWaifu by remember { mutableIntStateOf(0) }
- val waifus = listOf(
- Waifu(
- imageRes = R.drawable.makise,
- name = "Makise Kurisu",
- description = "Best Tsundere"
- ),
- Waifu(
- imageRes = R.drawable.mikasa_ackerman,
- name = "Mikasa Ackerman",
- description = "EREEEH"
- )
- )
- Box(
- modifier = Modifier
- .fillMaxSize()
- ) {
- // Picture of waifus
- Column(
- horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = Arrangement.Center,
- modifier = Modifier
- .align(Alignment.Center) // Center the content
- .offset(y = (-100).dp)
- .clip(shape = RoundedCornerShape(16.dp))
- .background(color = Color.White, shape = RoundedCornerShape(16.dp))
- .shadow(elevation = 3.dp, shape = RoundedCornerShape(16.dp))
- .padding(20.dp)
- .size(300.dp)
- ) {
- Image(
- painter = painterResource(id = waifus[currentWaifu].imageRes),
- contentDescription = null,
- modifier = Modifier
- .fillMaxSize()
- .clip(shape = RoundedCornerShape(16.dp))
- )
- }
- // Description box
- Column(
- horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = Arrangement.Center,
- modifier = Modifier
- .align(Alignment.Center)
- .offset(y = 210.dp)
- .size(width = 250.dp, height = 100.dp)
- .clip(shape = RoundedCornerShape(16.dp))
- .background(color = Color.LightGray)
- ) {
- Text("Test1")
- Text("Test2")
- }
- // Navigation buttons at the bottom
- Box(
- modifier = Modifier
- .fillMaxWidth()
- .align(Alignment.BottomCenter) // Align buttons to the bottom
- ) {
- Row(
- modifier = Modifier
- .fillMaxWidth()
- ) {
- //Previous button
- Button(
- onClick = {
- if (currentWaifu > 0)
- currentWaifu--
- },
- modifier = Modifier
- // .size(160.dp, 70.dp)
- .weight(1f)
- .padding(16.dp)
- ) {
- Text(text = "<")
- }
- //Next button
- Button(
- onClick = {
- if (currentWaifu < waifus.size - 1)
- currentWaifu++
- },
- modifier = Modifier
- .weight(1f)
- .padding(16.dp)
- ) {
- Text(text = ">")
- }
- }
- }
- }
- }
- @Preview(showBackground = true)
- @Composable
- fun GreetingPreview() {
- WaifuShowcaseTheme {
- WaifuApp()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement