as_instapicker 1.0.4+1 copy "as_instapicker: ^1.0.4+1" to clipboard
as_instapicker: ^1.0.4+1 copied to clipboard

An image (and videos) picker similar with Instagram, supports multi picking, crop and aspect ratio. fork of insta_assets_picker

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'pages/stateless_pickers.dart';
import 'pages/camera/camera_picker.dart';
import 'pages/camera/wechat_camera_picker.dart';
import 'pages/restorable_picker.dart';
import 'post_provider.dart';
import 'widgets/insta_picker_interface.dart';
import 'widgets/post.dart';
import 'package:provider/provider.dart';

const kDefaultColor = Colors.deepPurple;

void main() => runApp(
      ChangeNotifierProvider(
        create: (context) => PostProvider(),
        child: const MyApp(),
      ),
    );

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Insta Assets Picker Demo',
      // update to change the main theme of app + picker
      theme: ThemeData(
        useMaterial3: true,
        colorScheme: ColorScheme.fromSeed(
          seedColor: kDefaultColor,
          brightness: Brightness.dark,
        ),
        cardTheme: const CardThemeData(
          elevation: 2,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.all(Radius.circular(8)),
          ),
        ),
        listTileTheme: const ListTileThemeData(
          enableFeedback: true,
          contentPadding: EdgeInsets.all(16),
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.all(Radius.circular(8)),
          ),
          titleTextStyle: TextStyle(fontWeight: FontWeight.w600),
          leadingAndTrailingTextStyle: TextStyle(fontSize: 24),
        ),
      ),
      home: const PickersScreen(),
      localizationsDelegates: const <LocalizationsDelegate<dynamic>>[
        GlobalWidgetsLocalizations.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [Locale('en')],
    );
  }
}

class PickersScreen extends StatelessWidget {
  const PickersScreen({super.key});

  @override
  Widget build(BuildContext context) {
    final List<InstaPickerInterface> pickers = [
      const SinglePicker(),
      const MultiplePicker(),
      const RestorablePicker(restrictVideoDuration: false),
      const CameraPicker(),
      const WeChatCameraPicker(),
    ];

    return Scaffold(
      appBar: AppBar(
        title: const Text('Insta pickers'),
        actions: [
          IconButton(
            onPressed: () => Navigator.of(context).push(
              MaterialPageRoute(builder: (context) => const PostsPage()),
            ),
            icon: const Icon(Icons.feed, semanticLabel: 'Feed'),
          )
        ],
      ),
      body: ListView.separated(
        padding: const EdgeInsets.all(16),
        itemBuilder: (BuildContext context, int index) {
          final PickerDescription description = pickers[index].description;

          return Card(
            child: ListTile(
              leading: Text(description.icon),
              title: Text(description.label),
              subtitle: description.description != null
                  ? Text(description.description!)
                  : null,
              trailing: const Icon(Icons.chevron_right_rounded),
              onTap: () => Navigator.of(context).push(
                MaterialPageRoute(builder: (context) => pickers[index]),
              ),
            ),
          );
        },
        separatorBuilder: (_, __) => const SizedBox(height: 4),
        itemCount: pickers.length,
      ),
    );
  }
}
4
likes
120
points
38
downloads
screenshot

Documentation

API reference

Publisher

verified publisheraishayy.com

Weekly Downloads

An image (and videos) picker similar with Instagram, supports multi picking, crop and aspect ratio. fork of insta_assets_picker

Topics

#picker #crop #image #video #instagram

License

MIT (license)

Dependencies

extended_image, flutter, fraction, instacrop, photo_manager, provider, video_player, wechat_assets_picker, wechat_picker_library

More

Packages that depend on as_instapicker