介绍
这篇文章将为大家详细讲解有关怎么在颤振中利用加密自定义形状,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
<强> ClipOval圆形裁剪强>
ClipOval ( ,孩子:SizedBox ( ,,宽度:120.0, ,,高度:120.0, ,,孩子:Image.asset ( ,,Config.assets_avatar_1, ),才能 ,), );
<>强CircleAvatar圆形头像强>
CircleAvatar ( ,半径:60.0, ,backgroundImage: AssetImage ( Config.assets_avatar_1才能, ,), );
<>强容器装饰装饰形状强>
<强>通过BoxShape。圆实现圆形图片强>
容器( ,宽度:120.0, ,高度:120.0, 装饰:大敌;BoxDecoration ( 形状:才能,BoxShape.circle, ,,图片:DecorationImage ( ,,,图片:AssetImage ( ,,,Config.assets_avatar_1, ,,), ),才能 ,) );
<>强通过BorderRadius实现圆形图片强>
容器( ,宽度:120.0, ,高度:120.0, 装饰:大敌;BoxDecoration ( ,,borderRadius: BorderRadius.all (Radius.circular (60.0)), ,,,图片:DecorationImage ( ,,,的形象:,AssetImage ( ,,,,Config.assets_avatar_1, ,,,), ,,), ,), )
<>强ClipPath路径剪裁强>
ClipPath ( ,加密:TriangleClipper (ClipperPosition.LeftTop), ,孩子:容器( ,,宽度:16.0, ,,高度:16.0, 装饰:,BoxDecoration(才能 ,,,颜色:Colors.blue, ),才能 ,), ); enum ClipperPosition  { LeftTop, RightTop, } class TriangleClipper  extends CustomClipper< Path>, { ,final ClipperPosition 位置; ,TriangleClipper (this.position); ,@override ,Path getClip (Size 大小),{ final 才能;path =,路径(); path.lineTo才能(0.0,0.0); if 才能;(position ==, ClipperPosition.LeftTop), { ,,path.lineTo(宽度,0.0); ,,path.lineTo(宽度,size.height); ,,},else if (position ==, ClipperPosition.RightTop), { ,,path.lineTo(宽度,0.0); ,,path.lineTo (0.0,, size.height); ,,} path.close才能(); return 才能;路径; ,} ,@override ,bool shouldReclip (CustomClipper oldClipper), { return 才能;假; ,} }
<>强ClipRect矩形剪裁强>
容器( ,对齐:Alignment.topCenter, ,颜色:Colors.transparent, ,孩子:容器( 颜色:,Colors.green,才能 ,,孩子:ClipRect ( ,,,快船:_RectClipper (20.0), ,,,孩子:Image.asset ( ,,,Config.assets_avatar_1, ,,,宽度:,160.0, ,,,身高:,160.0, ,,,适合:,BoxFit.fill, ,,), ),才能 ,), ); class _RectClipper  extends CustomClipper< Rect>, { ,///Remove side of 大小 ,final double  removeSize; , ,_RectClipper (this.removeSize); , ,@override ,Rect getClip (Size 大小),{ return 才能;new  Rect.fromLTRB ( ,,removeSize, ,,removeSize, ,,size.width 安康;removeSize, ,,size.height 安康;removeSize, ,,); ,} , ,@override ,bool shouldReclip (CustomClipper<>强ClipRRect圆角矩形剪裁强>
ClipRRect ( ,borderRadius: BorderRadius.all (Radius.circular (16.0)), ,孩子:Image.asset ( Config.assets_avatar_1才能, ,,适合:BoxFit.fill, ,,宽度:120.0, ,,高度:120.0, ,), );<>强星级(CustomPaint)评分控件强>
<强>评分控件界面图强>
<强>实现方案强>
使用CustomPaint结合ClipPath画出单个五角星;
<李>
使用堆栈渲染两层画面
李> <李>背景层,一排灰色五角星,前景层,一排亮色五角星,并使用ClipRect截取一定宽度
李><强>实现代码强>
class StarRatingDemo extends StatefulWidget { ,@override ,_StarRatingDemoState createState(),=祝辞,_StarRatingDemoState (); } class _StarRatingDemoState  extends State< StarRatingDemo>, { ,///ClipPath Star 评级 ,_buildClipPathStarRating (double ,, int 计数),{ null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么在颤振中利用加密自定义形状