ar_tryon_view 0.0.1 copy "ar_tryon_view: ^0.0.1" to clipboard
ar_tryon_view: ^0.0.1 copied to clipboard

Flutter plugin that embeds a native Android camera preview using PlatformView + CameraX and supports transparent PNG overlay effects (e.g., glasses, masks, accessories) for virtual try-on experiences [...]

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:ar_tryon_view/ar_tryon_view.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:flutter/services.dart';

void main() => runApp(const MyApp());

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  ArTryOnController? controller;

  Future<void> _startSafely() async {
    final status = await Permission.camera.request();
    if (!status.isGranted) {
      if (!mounted) return;
      ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(content: Text('Camera permission denied')),
      );
      return;
    }

    try {
      await controller?.start();
    } on PlatformException catch (e) {
      if (!mounted) return;
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('Start failed: ${e.code}')),
      );
    }
  }

  Future<void> _stopSafely() async {
    try {
      await controller?.stop();
    } on PlatformException {}
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('AR Try-on Demo')),
        body: Column(
          children: [
            Expanded(
              child: ArTryOnView(
                onCreated: (c) async {
                  controller = c;
                  await _startSafely(); // auto start after permission
                },
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(12),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  ElevatedButton(
                    onPressed: _startSafely,
                    child: const Text('Start'),
                  ),
                  ElevatedButton(
                    onPressed: _stopSafely,
                    child: const Text('Stop'),
                  ),
                  ElevatedButton(
                    onPressed: () async {
                      await controller?.setEffectAsset('assets/glasses_01.png');
                    },
                    child: const Text('Effect'),
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}
2
likes
0
points
202
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin that embeds a native Android camera preview using PlatformView + CameraX and supports transparent PNG overlay effects (e.g., glasses, masks, accessories) for virtual try-on experiences in e-commerce apps.

Repository (GitHub)
View/report issues

Topics

#camera #camerax #ar #overlay #e-commerce

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on ar_tryon_view

Packages that implement ar_tryon_view