From 38b1500372dfb6ae15e9577bd0a49764c6a64032 Mon Sep 17 00:00:00 2001 From: WinUser01 Date: Fri, 31 Dec 2021 17:06:02 +0800 Subject: [PATCH] =?UTF-8?q?hyzp=5Fybqx-Commit056=EF=BC=9A=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E8=B0=83=E6=95=B4=E6=AD=A5=E8=BF=9Bspeed=20=3D=202?= =?UTF-8?q?=EF=BC=8C=E5=B7=B2=E7=BB=8F=E5=88=9D=E6=AD=A5=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E7=90=83=E6=9C=BA=E6=94=BE=E5=A4=A7=E7=BC=A9=E5=B0=8F=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/wiper.png | Bin 0 -> 1230 bytes assets/images/zoom_in.png | Bin 0 -> 1496 bytes assets/images/zoom_out.png | Bin 0 -> 1413 bytes lib/widget/my_superplayer.dart | 78 +++++++++++++++++++++++++++++++-- 4 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 assets/images/wiper.png create mode 100644 assets/images/zoom_in.png create mode 100644 assets/images/zoom_out.png diff --git a/assets/images/wiper.png b/assets/images/wiper.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6519a3abfa37cffd6fb808f1fc5c09b35e3a58 GIT binary patch literal 1230 zcmV;<1Tp)GP)7%g5PtLC#&+!VCs9kF4Im0sLa0zsg$i<0r;%ELgan7S3MC;0i32Dn#EHKMm0M4g zAE`nuazd%dp-4!r_-V4i4YU&Uf{-{s0kuh-Ht7#`65G4)4f9eQVtegfuam$YEP3C| zH{Z_Ad~e=4glQ8kUdDDt}uj?Tv>+(+mHQOOK7OY+0A#m+4U;f9H1b9 zg|^7pR{_J=|8?}pm>Wj9^`$00MFEI$&B?q-~)Qj1=&fg4(!Y_a$agMLi{iiEnjw4fhhhzN}-biIei%*>6UaC2*CgrZ5Y5k4i zSo}mS$%5A5?oC2sfn50oRGdA+7`{hJ!izAdf$$}+_<4OFLEd02n>5=7(tcwR@y`2% zkfWthN=@#T&xx|Z!d+qx++pX@x_+IGfo)L zi@iK?=E6P7f)&*Sp$+CC2JA!fDcHOy`y?)`hbcH$4W6^Dv?(Asop8E|_%**|y!+|8&;C|$kZAv= zqgnAli#rImkbb{O)88iAz<&W?y-f0&j$-aHZ(7hBO%ArlM+=DW{%p6HXpU^4tgrM6 zw48Rj#-}6oziNdkIl4Xh!;9fmYIXx44=yJuw^-ajE5nW7N1{hk^Quzp6iqzSXxM=} z7kf^3BUf%+4`c}9QljmCw)H1TyyuUX z6;Jt^d@d)}{a2a4nQ4_wwDyk|Keg-U2|a{mvpFKayfv?DT1soI+_dOQTtDf~FFPZd zkXW~TY9rIRKwvE2h)y-;iMV#uQhBw>SR;k8cB!(jv&^|MX;~L&E;sE;P2rh%9z^f3 zj9F_GuWR(O%X;ZZP1r(l&8kaJe*f6OtQViEiRVG}V3ux3uMB`}q+SnIKhH~@(F|Ae zx)i}1X4}UZFN9s?&?|_Z=S}mEfRHL8g{4ip_nmp&5uqQEAf=&Z0M! sG>-^?~#hRLF-gnaH)rF+Axd=GUkNa=4ISGp~1G z(WBA?--Eoy9X#!6iw@+I=LeaR#}W9ngQ1TQYEbp^Srl+K4eoOtmQC{A__=>5c~mWw zXCi?_&^ZYD7UEGBLmxJ{7V8<`D|zTG_;-xlDY%n=9AS56s5<#EOnBCkMDs?7mRW@T zyjOFAbhreh70>j|4azravFvryC**1j@ey+;So0guu{NWiY` z_sCe-Dt_#(dIW{fhAD*SN#>dY#)wNLyVdLB^DGJD!~8sN5%jR}=c>85e#j^ZWQ&}H zDY_9k(Gt6Y#l4&lqzQ;?EP_=qJr@SBR7P8fEZMu!cd<)f2IN{MAF{U%rYnXUq}J?MN;;8i zTqS4!sZ$&1fgB?P(v{GS1Kdol*AfP_lewon4zBW{g~rre*jzK&Xkf6J?H?FGuoieW5vOgwX`X z2UyW|A=5fkxsJn(OuK#96gZ2AC_Av|f+$Us)8a$TU7G`-aj7o(M`j~Cw9l~{u`{Td zy8v40P}aluMx6WILRRy|L()5+*YivY<EupjmqmqJ1EeH(lxg=qk zIy07Ju37z|y&trdJ!FHDDA=Lw-KM+Ve&5Wv&OP_sJ9i$n9XQO~bH4MP-~GPteD|DV zq>AFbD91~moW;;%#FOFtHi(hGs5@l0d`aKiW`=C9LUmw>iL1n0BPU8iT9KbYJ+kaL zPr8tQ9=Udtl5fh&hX|AfELv+J<1eL_m3Pe3OWO)b%6!uz-&YD6I-$3K_a86wapB#0 z7uH^WL&aP(Ri3Owl@rj*%0Vbu30!j}%3{hcmtMJn7~L61J^<*gl3_AP-T>~@Pz9d+ zfwMQ${}FP!82-fGLs=lBX+M+av#I+=0BiuVB@Uzy5V!`}M_xtogb?N109wo{U5WDF z!vN4T96i_2KaV;pL~ezo`h*&%_xfVW;8=dJgQ2XrXjcmRZ(Ll)TW z#NgW*UbYS1N_9EnPEl zvl^zftj24)Q}T1;;_qnjZ=ZT)Bndg^Q<{m+_@U%RwgY&yPgh#bz=H2tW3~Wzz6fv4t;N!j-^_|ExK>W$3-XCI zrW3$ZT!3HG*ywk>jInpYbp_1izZ@GanAZTjzy+v+{!fkJ+nbWLR@?*zhgz+)!$=Pk zZ?VGVHl820#y^GJ^)5ga)B$^oC(FzVYj#g6HBa+aNEPk4i>%(*HC{J4g%L zN;P^qRhrM35lvm!@_THQ>r47VA>B6%X}JaEYIb|k*z@UihHgH4s6(iusr$u*vc;T` z;de6`X+gs?RJ{iIuSx(i^0tbks{6Pl&ec~LvTogUgPNiqTxO^bGS+n(pc8?-3&oSD zvBnf3cID5)3AvZ6w=VQF@w_P(q(~bv{#YfG>G8CY$)>YNCNqg9+z}3I=pEqux`>cV zGf8);Oa+jAj6bg;z(7>%B~g+XP2jfOT>th-cbr^V0c3kkfR%-zUpf|~k@W)xsJLYz zJy|rMfMp with SuperPlayerListe int btnCount = 4; //每行按钮个数 int btnCount3 = listData.length; //每行按钮个数 var mediaSize = MediaQuery.of(context).size; + double btn_left = 70; //第一按钮行高度 + double btn_gap = 70; //第一按钮行高度 //远程控制球机方向按钮外半径和内半径 double _outerRadius = 270; double _innerRadius = _outerRadius / 2; @@ -245,7 +247,7 @@ class _SuperPlayerPageState extends State with SuperPlayerListe ? SizedBox.shrink() : Row( children: [ - SizedBox(width: ScreenUtil().setWidth(347)), + SizedBox(width: ScreenUtil().setWidth(btn_left)), getRoundButton( //(bPlaying) ? '暂停' : '播放', text: playerRegionProvide.playerText, @@ -253,7 +255,7 @@ class _SuperPlayerPageState extends State with SuperPlayerListe diameter: 130, onPress: playOrPause, ), - SizedBox(width: ScreenUtil().setWidth(104)), + SizedBox(width: ScreenUtil().setWidth(btn_gap)), getRoundButton( text: '刷新', icon: Icons.autorenew, @@ -262,6 +264,35 @@ class _SuperPlayerPageState extends State with SuperPlayerListe restartPlay(urlnew); }, ), + SizedBox(width: ScreenUtil().setWidth(btn_gap)), + getRoundButton_image( + text: '雨刷', + image_path: 'assets/images/wiper.png', + diameter: 130, + onPress: () {}, + ), + SizedBox(width: ScreenUtil().setWidth(btn_gap)), + getRoundButton_image( + text: '放大', + image_path: 'assets/images/zoom_in.png', + imageSize: 72, + diameter: 130, + onPress: () { + // 云台控制代码:1:停止动作、3:启动雨刷、11:焦距变大、12:焦距变小 + setSphericalCameraDio(id: widget.id, dwip: widget.dwip, cmdCode: 11); + }, + ), + SizedBox(width: ScreenUtil().setWidth(btn_gap)), + getRoundButton_image( + text: '缩小', + image_path: 'assets/images/zoom_out.png', + imageSize: 72, + diameter: 130, + onPress: () { + // 云台控制代码:1:停止动作、3:启动雨刷、11:焦距变大、12:焦距变小 + setSphericalCameraDio(id: widget.id, dwip: widget.dwip, cmdCode: 12); + }, + ), ], ), bFullScreen ? SizedBox.shrink() : SizedBox(height: ScreenUtil().setHeight(79)), @@ -438,7 +469,7 @@ class _SuperPlayerPageState extends State with SuperPlayerListe _addLog('onStartFloatWindowPlay', {}); } - //生成圆形按钮部件 + //生成圆形按钮部件,基于图标 Widget getRoundButton( {double diameter = 144, double marginVer = 10, @@ -474,6 +505,47 @@ class _SuperPlayerPageState extends State with SuperPlayerListe ); } + //生成圆形按钮部件,基于图片 + Widget getRoundButton_image( + {double diameter = 144, + double marginVer = 10, + String text, + String image_path, + double fontSize = 16, + double imageSize = 90, + Color color = const Color.fromRGBO(52, 157, 237, 1), + var onPress}) { + return InkWell( + onTap: onPress, + child: Column( + children: [ + Container( + width: ScreenUtil().setWidth(diameter), + height: ScreenUtil().setHeight(diameter), + alignment: Alignment.center, + child: Image.asset(image_path, + fit: BoxFit.fitWidth, + width: ScreenUtil().setWidth(imageSize), + //height: ScreenUtil().setWidth(iconSize), + color: Color.fromRGBO(52, 157, 237, 1)), + // child: Icon( + // icon, + // size: ScreenUtil().setWidth(iconSize), + // color: Color.fromRGBO(52, 157, 237, 1), + // ), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(200)), + border: Border.all(width: 0, style: BorderStyle.none), + ), + ), + SizedBox(height: ScreenUtil().setHeight(marginVer)), + Text(text, style: TextStyle(fontSize: fontSize, color: Color.fromRGBO(139, 139, 139, 1))), + ], + ), + ); + } + bool bPlaying = true; void playOrPause() {