|
- import 'package:chat/generated/i18n.dart';
- import 'package:chat/r.dart';
- import 'package:chat/utils/image_frame_animation.dart';
- import 'package:chat/utils/screen.dart';
- import 'package:flutter/material.dart';
-
- class AnimEffect {
- static showEffect(BuildContext context, int giftId) {
- var overlayState = Overlay.of(context);
- OverlayEntry overlayEntry = OverlayEntry(builder: (context) {
- return LayoutBuilder(builder: (context, constraints) {
- var item;
- if (giftId == 2) {
- var imgList = [
- R.assetsImagesGiftShow21,
- R.assetsImagesGiftShow22,
- R.assetsImagesGiftShow23,
- R.assetsImagesGiftShow24
- ].map<Widget>((imgName) => Image.asset(imgName)).toList();
-
- item = ImgFrameAnimation(imgList: imgList);
- } else {
- var imgPath = 'assets/images/gift_anim_$giftId.gif';
- item = Image.asset(imgPath);
- }
-
- return IgnorePointer(
- ignoring: true,
- child: Container(
- child: Material(
- color: Colors.black.withOpacity(0.7),
- child: Center(child: item)),
- alignment: Alignment.center,
- ),
- );
- });
- });
- overlayState.insert(overlayEntry);
-
- //两秒后,移除Toast
- Future.delayed(Duration(seconds: 3)).then((value) {
- overlayEntry.remove();
- });
- }
-
- static showDashangEffect(
- BuildContext context, bool isMe, int amount, String itemName) {
- var overlayState = Overlay.of(context);
- OverlayEntry overlayEntry = OverlayEntry(builder: (context) {
- return Positioned(
- // left: isMe ? 10 : null,
- // right: !isMe ? 10 : null,
- bottom: 150,
- child: Container(
- width: Screen.width,
- alignment: Alignment
- .center, //isMe ? Alignment.centerLeft : Alignment.centerRight,
- child: Material(
- color: Colors.black.withOpacity(0),
- child: isMe
- ? fixedText(
- I18n.of(context)
- .send_gift
- .replaceFirst('/s1', amount.toString())
- .replaceFirst('/s2', itemName),
- color: Colors.white)
- : fixedText(
- I18n.of(context)
- .receive_gift
- .replaceFirst('/s1', amount.toString())
- .replaceFirst('/s2', itemName),
- color: Colors.white)),
- ),
- );
- });
- overlayState.insert(overlayEntry);
-
- //两秒后,移除Toast
- Future.delayed(Duration(seconds: 3)).then((value) {
- overlayEntry.remove();
- });
- }
- }
|