This commit is contained in:
xuhang-x 2024-07-25 19:42:31 +08:00
parent d33768b96a
commit f9f35ef647
55 changed files with 261 additions and 287 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

BIN
assets/images/home_background.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 625 B

After

Width:  |  Height:  |  Size: 560 B

BIN
assets/images/home_more.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 963 B

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/launcher_icon/launcher_icon.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 955 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 546 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 142 KiB

View File

@ -20,16 +20,19 @@ class Assets {
static const String imagesDeleteIcon = 'assets/images/delete_icon.png'; static const String imagesDeleteIcon = 'assets/images/delete_icon.png';
static const String imagesExchangeLanguage = 'assets/images/exchange_language.png'; static const String imagesExchangeLanguage = 'assets/images/exchange_language.png';
static const String imagesFullScreen = 'assets/images/full_screen.png'; static const String imagesFullScreen = 'assets/images/full_screen.png';
static const String imagesHistoryEmptyState = 'assets/images/history_empty_state.gif';
static const String imagesHomeBackground = 'assets/images/home_background.png'; static const String imagesHomeBackground = 'assets/images/home_background.png';
static const String imagesHomeMicrophone = 'assets/images/home_microphone.png'; static const String imagesHomeMicrophone = 'assets/images/home_microphone.png';
static const String imagesHomeMore = 'assets/images/home_more.png'; static const String imagesHomeMore = 'assets/images/home_more.png';
static const String imagesMicrophoneIcon = 'assets/images/microphone_icon.png'; static const String imagesMicrophoneIcon = 'assets/images/microphone_icon.png';
static const String imagesRabbitEars = 'assets/images/rabbit_ears.png'; static const String imagesRabbitEars = 'assets/images/rabbit_ears.png';
static const String imagesRabbitSayGood = 'assets/images/rabbit_say_good.png'; static const String imagesRecordSubscript = 'assets/images/record_subscript.gif';
static const String imagesRotateIcon = 'assets/images/rotate_icon.png'; static const String imagesRotateIcon = 'assets/images/rotate_icon.png';
static const String imagesSetrringSubscript = 'assets/images/setrring_subscript.gif';
static const String imagesSpeakFace = 'assets/images/speak_face.png'; static const String imagesSpeakFace = 'assets/images/speak_face.png';
static const String imagesSpeakerIcon = 'assets/images/speaker_icon.png'; static const String imagesSpeakerIcon = 'assets/images/speaker_icon.png';
static const String imagesStarGreen = 'assets/images/star_green.png'; static const String imagesStarGreen = 'assets/images/star_green.png';
static const String imagesSuspendedDecoration = 'assets/images/suspended_decoration.png';
static const String imagesTitleBackground = 'assets/images/title_background.png'; static const String imagesTitleBackground = 'assets/images/title_background.png';
static const String imagesToolsDialog = 'assets/images/tools_dialog.png'; static const String imagesToolsDialog = 'assets/images/tools_dialog.png';
static const String imagesToolsHistory = 'assets/images/tools_history.png'; static const String imagesToolsHistory = 'assets/images/tools_history.png';

View File

@ -1,4 +1,7 @@
import 'dart:ui';
class GlobalConfig { class GlobalConfig {
static const appName = 'TransLark'; static const appName = 'TransGlobe';
static const appColor = Color(0xffFF5122);
} }

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/page/index/index_controller.dart'; import 'package:trans_lark/page/index/index_controller.dart';
import 'package:trans_lark/util/t_object_utils.dart'; import 'package:trans_lark/util/t_object_utils.dart';
import 'package:trans_lark/widget/t_language_bar_widget.dart'; import 'package:trans_lark/widget/t_language_bar_widget.dart';
@ -25,7 +26,7 @@ class IndexView extends StatelessWidget {
child: Column( child: Column(
children: [ children: [
_buildHead(), _buildHead(),
Expanded(child: Container()), const SizedBox(height: 42),
_buildDailyQuote(), _buildDailyQuote(),
Expanded(child: Container()), Expanded(child: Container()),
_buildTools(), _buildTools(),
@ -44,34 +45,30 @@ class IndexView extends StatelessWidget {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Container( GestureDetector(
padding: const EdgeInsets.symmetric(horizontal: 20), onTap: logic.openSettingsBottomSheet,
decoration: const BoxDecoration( child: Container(
image: DecorationImage( width: 36,
image: AssetImage( height: 36,
Assets.imagesTitleBackground, padding: const EdgeInsets.all(6.5),
decoration: BoxDecoration(
color: GlobalConfig.appColor,
borderRadius: BorderRadius.circular(36),
),
child: Image.asset(
Assets.imagesHomeMore,
), ),
), ),
), ),
child: const Text( const Text(
"Instant Translator", GlobalConfig.appName,
style: TextStyle( style: TextStyle(
color: Color(0xff1E1E1E), color: Color(0xff1E1E1E),
fontSize: 24, fontSize: 24,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
), ),
), ),
), const SizedBox(width: 36),
GestureDetector(
onTap: logic.openSettingsBottomSheet,
child: ClipOval(
child: Image.asset(
Assets.imagesHomeMore,
width: 32,
height: 32,
),
),
),
], ],
), ),
); );
@ -80,34 +77,19 @@ class IndexView extends StatelessWidget {
Widget _buildDailyQuote() { Widget _buildDailyQuote() {
return GestureDetector( return GestureDetector(
onTap: logic.toSceneCategory, onTap: logic.toSceneCategory,
child: Container( child: Column(
decoration: BoxDecoration( children: [
border: Border.all( Container(
width: 1.5, padding: const EdgeInsets.only(top: 28, left: 22, bottom: 31),
color: const Color(0xff3AAA72), decoration: const BoxDecoration(
color: Color(0xffBFE9D4),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
), ),
color: const Color(0xff78dfa8),
borderRadius: BorderRadius.circular(16),
), ),
child: Stack( child: Stack(
clipBehavior: Clip.none, clipBehavior: Clip.none,
children: [
Positioned(
top: 16,
right: 31,
left: 31,
child: Image.asset(
Assets.imagesDailyQuoteBackground,
),
),
Column(
children: [
Container(
padding: const EdgeInsets.symmetric(
horizontal: 30,
vertical: 15,
),
child: Stack(
alignment: AlignmentDirectional.bottomStart, alignment: AlignmentDirectional.bottomStart,
children: [ children: [
Positioned( Positioned(
@ -116,7 +98,7 @@ class IndexView extends StatelessWidget {
width: 73, width: 73,
height: 7, height: 7,
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xfffff0a0), color: const Color(0xff5CC2AD),
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
), ),
), ),
@ -129,19 +111,29 @@ class IndexView extends StatelessWidget {
fontSize: 20, fontSize: 20,
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
fontStyle: FontStyle.italic, fontStyle: FontStyle.italic,
color: Colors.white, color: Color(0xff240F69),
), ),
), ),
Container( Container(
margin: const EdgeInsets.only(left: 5), margin: const EdgeInsets.only(left: 5),
child: Image.asset( child: Image.asset(
Assets.imagesArrowRight, Assets.imagesArrowRight,
width: 10, color: const Color(0xff240F69),
height: 10, width: 14,
height: 14,
), ),
), ),
], ],
) ),
Positioned(
right: -20,
bottom: -31,
child: Image.asset(
Assets.imagesSuspendedDecoration,
width: 211.41,
height: 99.14,
),
),
], ],
), ),
), ),
@ -152,15 +144,12 @@ class IndexView extends StatelessWidget {
height: 168, height: 168,
padding: const EdgeInsets.symmetric(horizontal: 20), padding: const EdgeInsets.symmetric(horizontal: 20),
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: const BoxDecoration(
border: const Border(
top: BorderSide(
width: 1.5,
color: Color(0xff1AB069),
),
),
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(16),
bottomRight: Radius.circular(16),
),
), ),
child: Column( child: Column(
children: [ children: [
@ -172,8 +161,7 @@ class IndexView extends StatelessWidget {
Obx(() { Obx(() {
return Text( return Text(
logic.fromLanguage.value != null logic.fromLanguage.value != null
? logic ? logic.fromLanguage.value!.languageName
.fromLanguage.value!.languageName
: '', : '',
style: const TextStyle( style: const TextStyle(
fontSize: 12, fontSize: 12,
@ -183,14 +171,12 @@ class IndexView extends StatelessWidget {
}), }),
const SizedBox(height: 9), const SizedBox(height: 9),
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [ children: [
Expanded( Expanded(
child: Obx(() { child: Obx(() {
return Text( return Text(
TObjectUtils.getStr( TObjectUtils.getStr(logic.fromStr.value),
logic.fromStr.value),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: const TextStyle( style: const TextStyle(
fontSize: 16, fontSize: 16,
@ -201,16 +187,14 @@ class IndexView extends StatelessWidget {
}), }),
), ),
GestureDetector( GestureDetector(
onTap: () => onTap: () => logic.translatorTtsPlay(true),
logic.translatorTtsPlay(true),
child: Container( child: Container(
width: 24, width: 24,
height: 24, height: 24,
padding: const EdgeInsets.all(3), padding: const EdgeInsets.all(3),
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xff4ECA8C), color: GlobalConfig.appColor,
borderRadius: borderRadius: BorderRadius.circular(12)),
BorderRadius.circular(12)),
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
child: Image.asset( child: Image.asset(
@ -245,14 +229,12 @@ class IndexView extends StatelessWidget {
}), }),
const SizedBox(height: 9), const SizedBox(height: 9),
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [ children: [
Expanded( Expanded(
child: Obx(() { child: Obx(() {
return Text( return Text(
TObjectUtils.getStr( TObjectUtils.getStr(logic.toStr.value),
logic.toStr.value),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: const TextStyle( style: const TextStyle(
fontSize: 16, fontSize: 16,
@ -263,16 +245,14 @@ class IndexView extends StatelessWidget {
}), }),
), ),
GestureDetector( GestureDetector(
onTap: () => onTap: () => logic.translatorTtsPlay(false),
logic.translatorTtsPlay(false),
child: Container( child: Container(
width: 24, width: 24,
height: 24, height: 24,
padding: const EdgeInsets.all(3), padding: const EdgeInsets.all(3),
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xff4ECA8C), color: GlobalConfig.appColor,
borderRadius: borderRadius: BorderRadius.circular(12),
BorderRadius.circular(12),
), ),
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
@ -296,18 +276,6 @@ class IndexView extends StatelessWidget {
), ),
], ],
), ),
Positioned(
top: -22,
right: 5,
child: Image.asset(
Assets.imagesRabbitSayGood,
width: 137,
height: 115,
),
),
],
),
),
); );
} }
@ -323,10 +291,10 @@ class IndexView extends StatelessWidget {
child: Container( child: Container(
width: 72, width: 72,
height: 72, height: 72,
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(10),
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xffD2FFFB), color: Colors.white,
borderRadius: BorderRadius.circular(24), borderRadius: BorderRadius.circular(72),
), ),
child: Image.asset( child: Image.asset(
Assets.imagesToolsPhoto, Assets.imagesToolsPhoto,
@ -354,10 +322,10 @@ class IndexView extends StatelessWidget {
child: Container( child: Container(
width: 72, width: 72,
height: 72, height: 72,
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(10),
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xffE1E2FE), color: Colors.white,
borderRadius: BorderRadius.circular(24), borderRadius: BorderRadius.circular(72),
), ),
child: Image.asset( child: Image.asset(
Assets.imagesToolsDialog, Assets.imagesToolsDialog,
@ -385,10 +353,10 @@ class IndexView extends StatelessWidget {
child: Container( child: Container(
width: 72, width: 72,
height: 72, height: 72,
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(10),
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xffFEE5C5), color: Colors.white,
borderRadius: BorderRadius.circular(24), borderRadius: BorderRadius.circular(72),
), ),
child: Image.asset( child: Image.asset(
Assets.imagesToolsHistory, Assets.imagesToolsHistory,
@ -422,9 +390,8 @@ class IndexView extends StatelessWidget {
height: 91, height: 91,
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xff7678ef), color: GlobalConfig.appColor,
borderRadius: BorderRadius.circular(28), borderRadius: BorderRadius.circular(22),
border: Border.all(width: 1.5, color: const Color(0xff5153c0)),
), ),
child: Row( child: Row(
children: [ children: [
@ -442,17 +409,15 @@ class IndexView extends StatelessWidget {
), ),
), ),
Padding( Padding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(right: 20),
right: 20,
),
child: GestureDetector( child: GestureDetector(
onTap: logic.onTapSpeak, onTap: logic.onTapSpeak,
child: Container( child: Container(
height: 36, height: 36,
width: 36, width: 36,
padding: const EdgeInsets.all(5), padding: const EdgeInsets.all(7),
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xff5153c0), color: Colors.white,
borderRadius: BorderRadius.circular(18), borderRadius: BorderRadius.circular(18),
), ),
child: Image.asset( child: Image.asset(
@ -467,6 +432,7 @@ class IndexView extends StatelessWidget {
), ),
const SizedBox(height: 20), const SizedBox(height: 20),
const TLanguageBarWidget(), const TLanguageBarWidget(),
const SizedBox(height: 20),
], ],
); );
} }

View File

@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/global/speech_to_text_manager.dart'; import 'package:trans_lark/global/speech_to_text_manager.dart';
import 'package:trans_lark/page/p2p/p2p_controller.dart'; import 'package:trans_lark/page/p2p/p2p_controller.dart';
import 'package:trans_lark/util/t_object_utils.dart'; import 'package:trans_lark/util/t_object_utils.dart';
@ -76,8 +77,8 @@ class P2PView extends GetView<P2PController> {
child: WaveWidget( child: WaveWidget(
config: CustomConfig( config: CustomConfig(
colors: [ colors: [
const Color(0xff45A7FE).withOpacity(0.2), const Color(0xff87ECB3).withOpacity(0.2),
const Color(0xff45A7FE), const Color(0xff87ECB3),
], ],
durations: [4000, 8000], durations: [4000, 8000],
heightPercentages: [-0.08, -0.08], heightPercentages: [-0.08, -0.08],
@ -92,7 +93,7 @@ class P2PView extends GetView<P2PController> {
: Container( : Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
color: const Color(0xff45A7FE), color: const Color(0xff87ECB3),
), ),
); );
}), }),
@ -182,8 +183,8 @@ class P2PView extends GetView<P2PController> {
? WaveWidget( ? WaveWidget(
config: CustomConfig( config: CustomConfig(
colors: [ colors: [
const Color(0xff87ECB3).withOpacity(0.2), GlobalConfig.appColor.withOpacity(0.2),
const Color(0xff87ECB3), GlobalConfig.appColor,
], ],
durations: [4000, 8000], durations: [4000, 8000],
heightPercentages: [-0.08, -0.08], heightPercentages: [-0.08, -0.08],
@ -197,7 +198,7 @@ class P2PView extends GetView<P2PController> {
: Container( : Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
color: const Color(0xff87ECB3), color: GlobalConfig.appColor,
), ),
); );
}), }),

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/entity/scene_entity.dart'; import 'package:trans_lark/entity/scene_entity.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/page/scene_category_item/scene_category_item_controller.dart'; import 'package:trans_lark/page/scene_category_item/scene_category_item_controller.dart';
import 'package:trans_lark/widget/t_base_appbar_widget.dart'; import 'package:trans_lark/widget/t_base_appbar_widget.dart';
import 'package:trans_lark/widget/t_base_scrollbar_widget.dart'; import 'package:trans_lark/widget/t_base_scrollbar_widget.dart';
@ -108,12 +109,12 @@ class SceneCategoryItemView extends GetView<SceneCategoryItemController> {
child: Container( child: Container(
width: 24, width: 24,
height: 24, height: 24,
color: const Color.fromRGBO(78, 202, 140, 0.20), color: GlobalConfig.appColor.withOpacity(.2),
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
child: Image.asset( child: Image.asset(
Assets.imagesSpeakerIcon, Assets.imagesSpeakerIcon,
color: const Color(0xff4ECA8C), color: GlobalConfig.appColor,
width: 16, width: 16,
height: 16, height: 16,
), ),

View File

@ -34,7 +34,7 @@ class SettingsWidget extends StatelessWidget {
Image.asset( Image.asset(
Assets.imagesHomeBackground, Assets.imagesHomeBackground,
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
height: 384, height: double.infinity,
fit: BoxFit.fitWidth, fit: BoxFit.fitWidth,
), ),
Column( Column(
@ -92,9 +92,9 @@ class SettingsWidget extends StatelessWidget {
), ),
_buildSettingItems(), _buildSettingItems(),
Image.asset( Image.asset(
Assets.imagesRabbitSayGood, Assets.imagesSetrringSubscript,
width: 90, width: 136,
height: 90, height: 136,
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
const SizedBox(height: 58), const SizedBox(height: 58),

View File

@ -2,6 +2,7 @@ import 'package:custom_pop_up_menu/custom_pop_up_menu.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/page/translator/translator_controller.dart'; import 'package:trans_lark/page/translator/translator_controller.dart';
import 'package:trans_lark/util/t_object_utils.dart'; import 'package:trans_lark/util/t_object_utils.dart';
import 'package:trans_lark/widget/t_base_appbar_widget.dart'; import 'package:trans_lark/widget/t_base_appbar_widget.dart';
@ -24,10 +25,9 @@ class TranslatorView extends GetView<TranslatorController> {
children: [ children: [
const SizedBox(height: 20), const SizedBox(height: 20),
Container( Container(
decoration: BoxDecoration( decoration: const BoxDecoration(
border: Border.all(width: 1.5, color: const Color(0xff0087FF)), color: GlobalConfig.appColor,
color: const Color(0xff45A7FE), borderRadius: BorderRadius.all(Radius.circular(16)),
borderRadius: const BorderRadius.all(Radius.circular(16)),
), ),
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -74,7 +74,7 @@ class TranslatorView extends GetView<TranslatorController> {
replacement: Container( replacement: Container(
width: 36, width: 36,
height: 36, height: 36,
color: const Color(0xff8BCFFE), color: Colors.white,
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
child: Image.asset( child: Image.asset(
@ -208,15 +208,7 @@ class TranslatorView extends GetView<TranslatorController> {
], ],
), ),
) )
: Expanded( : Expanded(child: Container()),
child: Center(
child: Image.asset(
Assets.imagesRabbitSayGood,
width: 90,
height: 90,
),
),
),
), ),
], ],
), ),

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/page/translator_record/translator_record_controller.dart'; import 'package:trans_lark/page/translator_record/translator_record_controller.dart';
import 'package:trans_lark/util/t_object_utils.dart'; import 'package:trans_lark/util/t_object_utils.dart';
import 'package:trans_lark/widget/t_base_appbar_widget.dart'; import 'package:trans_lark/widget/t_base_appbar_widget.dart';
@ -23,9 +24,9 @@ class TranslatorRecordView extends GetView<TranslatorRecordController> {
if (controller.historyList.isNotEmpty) return _buildHistoryList(); if (controller.historyList.isNotEmpty) return _buildHistoryList();
return Center( return Center(
child: Image.asset( child: Image.asset(
Assets.imagesRabbitSayGood, Assets.imagesHistoryEmptyState,
width: 90, width: 168,
height: 90, height: 168,
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
); );
@ -35,12 +36,12 @@ class TranslatorRecordView extends GetView<TranslatorRecordController> {
return Visibility( return Visibility(
visible: controller.historyList.isNotEmpty, visible: controller.historyList.isNotEmpty,
child: Positioned( child: Positioned(
top: 59, top: 44,
right: 23, right: 20,
child: Image.asset( child: Image.asset(
Assets.imagesRabbitSayGood, Assets.imagesRecordSubscript,
width: 90, width: 96,
height: 90, height: 96,
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
), ),
@ -87,7 +88,7 @@ class TranslatorRecordView extends GetView<TranslatorRecordController> {
onDismissed: (_) => onDismissed: (_) =>
controller.deleteHistoryItem(map.key, item, index), controller.deleteHistoryItem(map.key, item, index),
background: Container( background: Container(
color: const Color(0xffFF98BC), color: const Color(0xffFC6C6B),
child: Stack( child: Stack(
children: [ children: [
Positioned( Positioned(
@ -105,7 +106,7 @@ class TranslatorRecordView extends GetView<TranslatorRecordController> {
), ),
), ),
secondaryBackground: Container( secondaryBackground: Container(
color: const Color(0xffFF98BC), color: const Color(0xffFC6C6B),
child: Stack( child: Stack(
children: [ children: [
Positioned( Positioned(
@ -134,7 +135,7 @@ class TranslatorRecordView extends GetView<TranslatorRecordController> {
child: Container( child: Container(
width: 32, width: 32,
height: 32, height: 32,
color: const Color(0xff4ECA8C), color: GlobalConfig.appColor,
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
child: Image.asset( child: Image.asset(

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/global/translate_manager.dart'; import 'package:trans_lark/global/translate_manager.dart';
import 'package:trans_lark/page/translator_result/translator_result_controller.dart'; import 'package:trans_lark/page/translator_result/translator_result_controller.dart';
import 'package:trans_lark/util/t_object_utils.dart'; import 'package:trans_lark/util/t_object_utils.dart';
@ -98,12 +99,12 @@ class TranslatorResultView extends GetView<TranslatorResultController> {
child: Container( child: Container(
width: 32, width: 32,
height: 32, height: 32,
color: const Color.fromRGBO(78, 202, 140, 0.20), color: GlobalConfig.appColor,
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
child: Image.asset( child: Image.asset(
Assets.imagesSpeakerIcon, Assets.imagesSpeakerIcon,
color: const Color(0xff4ECA8C), color: Colors.white,
width: 20, width: 20,
height: 20, height: 20,
), ),
@ -151,7 +152,7 @@ class TranslatorResultView extends GetView<TranslatorResultController> {
height: 20, height: 20,
child: CircularProgressIndicator( child: CircularProgressIndicator(
strokeWidth: 2, strokeWidth: 2,
color: Color(0xff4ECA8C), color: GlobalConfig.appColor,
), ),
), ),
), ),
@ -186,12 +187,12 @@ class TranslatorResultView extends GetView<TranslatorResultController> {
child: Container( child: Container(
width: 32, width: 32,
height: 32, height: 32,
color: const Color.fromRGBO(78, 202, 140, 0.20), color: GlobalConfig.appColor,
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
child: Image.asset( child: Image.asset(
Assets.imagesSpeakerIcon, Assets.imagesSpeakerIcon,
color: const Color(0xff4ECA8C), color: Colors.white,
width: 20, width: 20,
height: 20, height: 20,
), ),

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/global/translate_manager.dart'; import 'package:trans_lark/global/translate_manager.dart';
import 'package:trans_lark/widget/t_language_bottom_sheet.dart'; import 'package:trans_lark/widget/t_language_bottom_sheet.dart';
@ -44,7 +45,7 @@ class TLanguageBarWidget extends StatelessWidget {
.isSelectFromLanguage .isSelectFromLanguage
.value .value
? const Color(0xff435561) ? const Color(0xff435561)
: const Color(0xff4ECA8C), : GlobalConfig.appColor,
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
@ -71,7 +72,7 @@ class TLanguageBarWidget extends StatelessWidget {
width: 26, width: 26,
height: 18, height: 18,
decoration: BoxDecoration( decoration: BoxDecoration(
color: const Color(0xffF1F1F1), color: const Color(0xfff1f1f1),
borderRadius: BorderRadius.circular(9), borderRadius: BorderRadius.circular(9),
), ),
child: FittedBox( child: FittedBox(
@ -109,7 +110,7 @@ class TLanguageBarWidget extends StatelessWidget {
.isSelectFromLanguage .isSelectFromLanguage
.value .value
? const Color(0xff435561) ? const Color(0xff435561)
: const Color(0xff4ECA8C), : GlobalConfig.appColor,
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,

View File

@ -3,6 +3,7 @@ import 'package:get/get.dart';
import 'package:get/get_state_manager/get_state_manager.dart'; import 'package:get/get_state_manager/get_state_manager.dart';
import 'package:trans_lark/entity/language_entity.dart'; import 'package:trans_lark/entity/language_entity.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/global/translate_manager.dart'; import 'package:trans_lark/global/translate_manager.dart';
import 'package:trans_lark/page/index/index_controller.dart'; import 'package:trans_lark/page/index/index_controller.dart';
import 'package:trans_lark/widget/t_base_scrollbar_widget.dart'; import 'package:trans_lark/widget/t_base_scrollbar_widget.dart';
@ -75,14 +76,14 @@ class TLanguageBottomSheet extends StatelessWidget {
.fromLanguageEntity .fromLanguageEntity
.value .value
.languageName .languageName
? const Color(0xff4ECA8C) ? GlobalConfig.appColor
: const Color(0xff152A3D)) : const Color(0xff152A3D))
: (item.languageName == : (item.languageName ==
TranslateManager() TranslateManager()
.toLanguageEntity .toLanguageEntity
.value .value
.languageName .languageName
? const Color(0xff4ECA8C) ? GlobalConfig.appColor
: const Color(0xff152A3D)), : const Color(0xff152A3D)),
fontSize: 16, fontSize: 16,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
@ -107,6 +108,7 @@ class TLanguageBottomSheet extends StatelessWidget {
padding: const EdgeInsets.only(left: 10), padding: const EdgeInsets.only(left: 10),
child: Image.asset( child: Image.asset(
Assets.imagesStarGreen, Assets.imagesStarGreen,
color: GlobalConfig.appColor,
width: 16, width: 16,
height: 16, height: 16,
), ),

View File

@ -42,13 +42,14 @@ class TLanguageResultBarWidget extends StatelessWidget {
width: 26, width: 26,
height: 18, height: 18,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: const Color(0xff7FD5AA),
borderRadius: BorderRadius.circular(9), borderRadius: BorderRadius.circular(9),
), ),
child: FittedBox( child: FittedBox(
fit: BoxFit.none, fit: BoxFit.none,
child: Image.asset( child: Image.asset(
Assets.imagesExchangeLanguage, Assets.imagesExchangeLanguage,
color: Colors.white,
width: 12, width: 12,
height: 12, height: 12,
), ),

View File

@ -3,6 +3,7 @@ import 'package:flutter/services.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:trans_lark/generated/assets.dart'; import 'package:trans_lark/generated/assets.dart';
import 'package:trans_lark/global/flutter_tts_manager.dart'; import 'package:trans_lark/global/flutter_tts_manager.dart';
import 'package:trans_lark/global/global_config.dart';
import 'package:trans_lark/global/translate_manager.dart'; import 'package:trans_lark/global/translate_manager.dart';
class TTranslateTextFullScreenPage extends StatefulWidget { class TTranslateTextFullScreenPage extends StatefulWidget {
@ -42,7 +43,7 @@ class _TranslateTextFullScreenPageState
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
color: const Color(0xff4ECA8C), color: GlobalConfig.appColor,
child: SafeArea( child: SafeArea(
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -76,10 +77,11 @@ class _TranslateTextFullScreenPageState
width: 32, width: 32,
height: 32, height: 32,
color: Colors.white, color: Colors.white,
padding: const EdgeInsets.all(6),
child: FittedBox( child: FittedBox(
fit: BoxFit.none,
child: Image.asset( child: Image.asset(
Assets.imagesSpeakerIcon, Assets.imagesSpeakerIcon,
color: GlobalConfig.appColor,
), ),
), ),
), ),