flutter InteractiveViewe 双击放大或缩小头像图片/Widget

siman 2024-5-13 22:37:07 447 0 来自 中国
final _transformationController = TransformationController(); //用于头像缩放
TapDownDetails? _doubleTapDetails ; //用于缩放图片是获取触摸位置

双击图片如果图片未放大那么放大 否则缩小到为放大状态

  1. InteractiveViewer(
  2.                                     maxScale: 4,

  3.                                     //panEnabled: true,
  4.                                     // scaleEnabled: true,

  5.                                     transformationController: _transformationController,

  6.                                     child: GestureDetector(
  7.                                       onDoubleTapDown: (TapDownDetails details){
  8.                                         _doubleTapDetails = details; //获取触摸位置
  9.                                       },
  10.                                       onTap: (){


  11.                                         print(Matrix4.identity());
  12.                                       },

  13.                                       onDoubleTap:(){
  14.                                         print("双击");
  15.                                         print(_transformationController.value.getMaxScaleOnAxis());//输出当前缩放倍数
  16.                                         if (_transformationController.value != Matrix4.identity()) {
  17.                                           //如果已经放大 缩小到1倍
  18.                                           _transformationController.value = Matrix4.identity();
  19.                                         } else {
  20.                                           //放大图片 3倍
  21.                                           final position = _doubleTapDetails!.localPosition;
  22.                                           // For a 3x zoom
  23.                                           _transformationController.value = Matrix4.identity()
  24.                                             ..translate(-position.dx * 2, -position.dy * 2)
  25.                                             ..scale(3.0);//放大倍数
  26.                                         }
  27.                                       },



  28.                                       child: Image.network(
  29.                                         imLogic.userInfo.value.faceURL!, // 替换为你的图片地址
  30.                                         fit: BoxFit.fitWidth,
  31.                                       ),
  32.                                     ),
复制代码

藏宝库28xin.com
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-25 12:00, Processed in 0.182176 second(s), 33 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表