万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    ClipOvalのShadow

    https://stackoverflow.com/questions/58690604/how-to-add-shadow-to-clipoval-in-flutter

    class CustomClipperOval extends CustomClipper<Rect> {
      @override
      Rect getClip(Size size) {
        return Rect.fromCircle(
            center: Offset(size.width / 2, size.width / 2),
            radius: size.width / 2 + 3);
      }
    
      @override
      bool shouldReclip(CustomClipper<Rect> oldClipper) {
        return false;
      }
    }
    
    class ClipOvalShadow extends StatelessWidget {
      const ClipOvalShadow(
          {required this.shadow,
          required this.clipper,
          required this.child,
          Key? key})
          : super(key: key);
    
      final Shadow shadow;
      final CustomClipper<Rect> clipper;
      final Widget child;
    
      @override
      Widget build(BuildContext context) {
        return CustomPaint(
          painter: _ClipOvalShadowPainter(
            clipper: clipper,
            shadow: shadow,
          ),
          child: ClipRect(clipper: clipper, child: child),
        );
      }
    }
    
    class _ClipOvalShadowPainter extends CustomPainter {
      _ClipOvalShadowPainter({required this.shadow, required this.clipper});
      final Shadow shadow;
      final CustomClipper<Rect> clipper;
    
      @override
      void paint(Canvas canvas, Size size) {
        final paint = shadow.toPaint();
        final clipRect = clipper.getClip(size).shift(Offset.zero);
        canvas.drawOval(clipRect, paint);
      }
    
      @override
      bool shouldRepaint(CustomPainter oldDelegate) {
        return true;
      }
    }