diff --git a/star_lock/images/icon_circle_dotted.png b/star_lock/images/icon_circle_dotted.png new file mode 100644 index 00000000..4a8a7cf9 Binary files /dev/null and b/star_lock/images/icon_circle_dotted.png differ diff --git a/star_lock/images/icon_lock_err.png b/star_lock/images/icon_lock_err.png new file mode 100644 index 00000000..b8a27cf2 Binary files /dev/null and b/star_lock/images/icon_lock_err.png differ diff --git a/star_lock/images/icon_lock_fill.png b/star_lock/images/icon_lock_fill.png new file mode 100644 index 00000000..5945f09d Binary files /dev/null and b/star_lock/images/icon_lock_fill.png differ diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 24315b49..467d4063 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -127,7 +127,7 @@ class _LockDetailPageState extends State Storage.setStringList(saveBlueSignKey, saveSignKeyList); bool ifHaveKey = await Storage.ifHaveKey(saveBlueToken); - if(!ifHaveKey){ + if (!ifHaveKey) { var saveTokenList = changeIntListToStringList([0, 0, 0, 0]); Storage.setStringList(saveBlueToken, saveTokenList); } @@ -232,79 +232,78 @@ class _LockDetailPageState extends State crossAxisAlignment: CrossAxisAlignment.start, children: [ const Spacer(), - Obx(() { - return GestureDetector( - onTap: state.openDoorBtnisUneable.value == true - ? () { - setState(() { - startOpenLock(); - }); - } - : null, - onLongPressStart: state.openDoorBtnisUneable.value == true - ? (details) { - setState(() { - startUnLock(); - }); - } - : null, - child: Container( - decoration: BoxDecoration( - color: Colors.white.withOpacity(0.9), - borderRadius: BorderRadius.circular(100.w), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - offset: Offset(0, 0), - blurRadius: 10.r, - spreadRadius: 0, - ), - ]), - margin: EdgeInsets.only(left: 35.w, bottom: 15.h), - child: Stack( - children: [ - FlavorsImg( - child: Image.asset( - state.openDoorBtnisUneable.value == false - ? 'images/main/icon_main_openLockBtn_grey.png' - : (state.isOpenPassageMode.value == 1 - ? 'images/main/icon_main_normallyOpenMode_center.png' - : 'images/main/icon_main_openLockBtn_center.png'), - width: 96.r, - height: 96.r, - // color: AppColors.primaryTopColor, - ), + GestureDetector( + onTap: state.openDoorBtnisUneable.value == true + ? () { + setState(() { + startOpenLock(); + }); + } + : null, + onLongPressStart: state.openDoorBtnisUneable.value == true + ? (details) { + setState(() { + startUnLock(); + }); + } + : null, + child: Container( + width: 100.r, + height: 100.r, + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.9), + borderRadius: BorderRadius.circular(100.w), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + offset: Offset(0, 0), + blurRadius: 10.r, + spreadRadius: 0, ), - state.openDoorBtnisUneable.value == false - ? Positioned( - child: FlavorsImg( + ]), + margin: EdgeInsets.only(left: 35.w, bottom: 15.h), + child: Stack( + alignment: AlignmentDirectional.center, + children: [ + state.openDoorBtnisUneable.value == false + ? Icon( + Icons.bluetooth_searching, + size: 48.r, + color: AppColors.mainColor, + ) + : Image.asset( + state.isOpenPassageMode.value == 1 + ? 'images/icon_lock_err.png' + : 'images/icon_lock_fill.png', + width: 38.r, + height: 38.r, + color: AppColors.mainColor, + ), + state.openDoorBtnisUneable.value == false + ? Positioned( + child: Icon( + Icons.bluetooth_searching, + size: 96.r, + ), + ) + : state.openLockBtnState.value == 1 + ? xhjBuildRotationTransition( + width: 88.r, + height: 88.r, + ) + : Positioned( child: Image.asset( - 'images/main/icon_main_openLockBtn_grey.png', - width: 96.r, - height: 96.r, - ), - ), - ) - : state.openLockBtnState.value == 1 - ? buildRotationTransition( - width: 96.r, - height: 96.r, - ) - : Positioned( - child: FlavorsImg( - child: Image.asset( - state.isOpenPassageMode.value == 1 - ? 'images/main/icon_main_normallyOpenMode_circle.png' - : 'images/main/icon_main_openLockBtn_circle.png', - width: 96.r, - height: 96.r, - ), - )), - ], - ), + 'images/icon_circle_dotted.png', + width: 88.r, + height: 88.r, + color: state.isOpenPassageMode.value == 1 + ? Colors.red + : AppColors.mainColor, + )), + ], ), - ); - }), + ), + ), Padding( padding: EdgeInsets.only(left: 15.w, right: 00.w, bottom: 15.h), child: Row( @@ -735,6 +734,28 @@ class _LockDetailPageState extends State ); } + //旋转动画 + Widget xhjBuildRotationTransition( + {required double width, required double height}) { + return Positioned( + child: RotationTransition( + //设置动画的旋转中心 + alignment: Alignment.center, + //动画控制器 + turns: state.animationController!, + //将要执行动画的子view + child: Image.asset( + 'images/icon_circle_dotted.png', + width: width, + height: height, + color: state.isOpenPassageMode.value == 1 + ? Colors.red + : AppColors.mainColor, + ), + ), + ); + } + //旋转动画 Widget buildRotationTransition( {required double width, required double height}) {