주식회사 이웃사촌

multi_image_picker 예제샘플 본문

ShopConn

multi_image_picker 예제샘플

(주)이웃사촌 2021. 12. 4. 11:55
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:multi_image_picker/multi_image_picker.dart';
import 'package:permission_handler/permission_handler.dart';

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  List<Asset> imageList = List<Asset>();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("widget.title"),
      ),
      body: Center(
        child: Column(
          children: <Widget>[
            //새로이 추가된 부분!!! 사진을 화면에 그려주기 위한 부분이다.
            imageList.isEmpty
                ? Container()
                : Container(
                    height: 400,
                    width: MediaQuery.of(context).size.width,
                    child: ListView.builder(
                        scrollDirection: Axis.horizontal,
                        itemCount: imageList.length,
                        itemBuilder: (BuildContext context, int index) {
                          Asset asset = imageList[index];
                          return AssetThumb(
                              asset: asset, width: 300, height: 300);
                        }),
                  ),
            OutlineButton(
              borderSide: BorderSide(color: Colors.blue[200], width: 3),
              child: Container(
                alignment: Alignment.center,
                height: 30,
                width: 250,
                child: Text(
                  '갤러리',
                  style: TextStyle(fontSize: 20),
                ),
              ),
              onPressed: () async {
                // if (await checkAndRequestCameraPermissions()) {
                getImage();
                // }
              },
            )
          ],
        ),
      ),
    );
  }

  getImage() async {
    List<Asset> resultList = List<Asset>();
    resultList =
        await MultiImagePicker.pickImages(maxImages: 5, enableCamera: true);
    setState(() {
      imageList = resultList;
    });
  }

  Future<bool> checkAndRequestCameraPermissions() async {
    return await Permission.camera.request().isGranted;
    // PermissionStatus permission =
    //     await PermissionHandler().checkPermissionStatus(PermissionGroup.camera);
    // if (permission != PermissionStatus.granted) {
    //   Map<PermissionGroup, PermissionStatus> permissions =
    //       await PermissionHandler()
    //           .requestPermissions([PermissionGroup.camera]);
    //   return permissions[PermissionGroup.camera] == PermissionStatus.granted;
    // } else {
    //   return true;
    // }
  }
}
반응형

'ShopConn' 카테고리의 다른 글

Image Picker 예제샘플  (0) 2021.12.03
구글폰트 지정하기 및 예제  (0) 2021.12.01
Comments