From 3c5f8a77875ba468c69ed9c3f43e8abf22641a12 Mon Sep 17 00:00:00 2001 From: Kevinlinpr Date: Sun, 13 Oct 2024 03:28:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8F=91=E9=80=81=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/aiosman/riderpro/ui/post/NewPost.kt | 65 ++++++++++--------- .../main/res/drawable/rider_pro_back_icon.xml | 14 ++++ 2 files changed, 48 insertions(+), 31 deletions(-) create mode 100644 app/src/main/res/drawable/rider_pro_back_icon.xml diff --git a/app/src/main/java/com/aiosman/riderpro/ui/post/NewPost.kt b/app/src/main/java/com/aiosman/riderpro/ui/post/NewPost.kt index bd39a06..b3b9186 100644 --- a/app/src/main/java/com/aiosman/riderpro/ui/post/NewPost.kt +++ b/app/src/main/java/com/aiosman/riderpro/ui/post/NewPost.kt @@ -7,11 +7,13 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.aspectRatio @@ -28,6 +30,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.BasicTextField import androidx.compose.material.LinearProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -40,6 +43,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawBehind +import androidx.compose.ui.geometry.CornerRadius import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.PathEffect @@ -142,7 +146,7 @@ fun NewPostTopBar(onSendClick: () -> Unit = {}) { modifier = Modifier.align(Alignment.CenterStart), ) { Image( - painter = painterResource(id = R.drawable.rider_pro_close), + painter = painterResource(id = R.drawable.rider_pro_back_icon), contentDescription = "Back", modifier = Modifier .size(24.dp) @@ -151,11 +155,12 @@ fun NewPostTopBar(onSendClick: () -> Unit = {}) { } ) Spacer(modifier = Modifier.weight(1f)) - Image( - painter = painterResource(id = R.drawable.rider_pro_send_post), + Icon( + painter = painterResource(id = R.drawable.rider_pro_video_share), + tint = Color.Black, contentDescription = "Send", modifier = Modifier - .size(24.dp) + .size(32.dp) .noRippleClickable { // 检查输入 val errorMessage = model.validateMoment() @@ -299,51 +304,41 @@ fun AddImageGrid() { } LazyVerticalGrid( columns = GridCells.Fixed(3), + contentPadding = PaddingValues(16.dp), modifier = Modifier .fillMaxWidth() .padding(18.dp), horizontalArrangement = Arrangement.spacedBy(8.dp), verticalArrangement = Arrangement.spacedBy(8.dp) ) { -// items(model.imageUriList.size) { index -> -// val uri = model.imageUriList[index] -// Box( -// modifier = Modifier -// .drawBehind { -// drawRoundRect(color = Color(0xFF999999), style = stroke) -// } -// ) { -// CustomAsyncImage( -// context, -// uri, -// contentDescription = "Image", -// modifier = Modifier -// .fillMaxWidth().aspectRatio(1f) -// .noRippleClickable { -// navController.navigate(NavigationRoute.NewPostImageGrid.route) -// }, -// contentScale = ContentScale.Crop -// ) -// } -// } item { Box( modifier = Modifier .fillMaxWidth() .aspectRatio(1f) .drawBehind { - drawRoundRect(color = Color(0xFF999999), style = stroke) + val strokeWidth = 1.dp.toPx() + val dashLength = 10f + val dashGap = 10f + val pathEffect = PathEffect.dashPathEffect(floatArrayOf(dashLength, dashGap)) + drawRoundRect( + color = Color(0xFFD6D6D6), + style = Stroke(strokeWidth, pathEffect = pathEffect), + cornerRadius = CornerRadius(8.dp.toPx()) + ) } .noRippleClickable { pickImagesLauncher.launch("image/*") }, ) { - Image( + Icon( painter = painterResource(id = R.drawable.rider_pro_new_post_add_pic), contentDescription = "Add Image", modifier = Modifier .size(48.dp) - .align(Alignment.Center) + .align(Alignment.Center), + tint = Color(0xFFD6D6D6) + ) } } @@ -353,7 +348,15 @@ fun AddImageGrid() { .fillMaxWidth() .aspectRatio(1f) .drawBehind { - drawRoundRect(color = Color(0xFF999999), style = stroke) + val strokeWidth = 1.dp.toPx() + val dashLength = 10f + val dashGap = 10f + val pathEffect = PathEffect.dashPathEffect(floatArrayOf(dashLength, dashGap)) + drawRoundRect( + color = Color(0xFFD6D6D6), + style = Stroke(strokeWidth, pathEffect = pathEffect), + cornerRadius = CornerRadius(8.dp.toPx()) + ) } .noRippleClickable { val photoFile = File(context.cacheDir, "photo.jpg") @@ -366,13 +369,13 @@ fun AddImageGrid() { takePictureLauncher.launch(photoUri) }, ) { - Image( + Icon( painter = painterResource(id = R.drawable.rider_pro_camera), contentDescription = "Take Photo", modifier = Modifier .size(48.dp) .align(Alignment.Center), - colorFilter = ColorFilter.tint(Color.Gray) + tint = Color(0xFFD6D6D6) ) } } diff --git a/app/src/main/res/drawable/rider_pro_back_icon.xml b/app/src/main/res/drawable/rider_pro_back_icon.xml new file mode 100644 index 0000000..56e3fd9 --- /dev/null +++ b/app/src/main/res/drawable/rider_pro_back_icon.xml @@ -0,0 +1,14 @@ + + +