app直播系統(tǒng)源碼,F(xiàn)lutter拍照與選擇照片并且保存到本地實(shí)現(xiàn)的相關(guān)代碼
核心代碼:
?
final picker = ImagePicker(); //初始化
///存放的圖片
File _imgPath;
Future getImage(bool isTakePhoto) async {
? try {
? ? var pickedFile = await picker.getImage(
? ? ? ? source: isTakePhoto ? ImageSource.camera : ImageSource.gallery);
? ? if (pickedFile != null) {
? ? ? setState(() {
? ? ? ? _imgPath = File(pickedFile.path);
? ? ? });
? ? } else {
? ? ? print('沒(méi)有選擇任何圖片');
? ? }
? } catch (e) {
? ? print("該手機(jī)不支持相機(jī)");
? }
}
?具體代碼:
?
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
class ImageTest extends StatefulWidget {
? @override
? State<StatefulWidget> createState() => ImageState();
}
class ImageState extends State<ImageTest> {
? final picker = ImagePicker();
? File _imgPath;
? Future getImage(bool isTakePhoto) async {
? ? try {
? ? ? var pickedFile = await picker.getImage(
? ? ? ? ? source: isTakePhoto ? ImageSource.camera : ImageSource.gallery);
? ? ? if (pickedFile != null) {
? ? ? ? setState(() {
? ? ? ? ? _imgPath = File(pickedFile.path);
? ? ? ? });
? ? ? } else {
? ? ? ? print('沒(méi)有選擇任何圖片');
? ? ? }
? ? } catch (e) {
? ? ? print("該手機(jī)不支持相機(jī)");
? ? }
? }
? @override
? Widget build(BuildContext context) {
? ? return Scaffold(
? ? ? body: ListView(
? ? ? ? children: [
? ? ? ? ? MaterialButton(
? ? ? ? ? ? ? minWidth: 100,
? ? ? ? ? ? ? height: 100,
? ? ? ? ? ? ? color: Colors.blue,
? ? ? ? ? ? ? onPressed: () {
? ? ? ? ? ? ? ? getImage(true);
? ? ? ? ? ? ? },
? ? ? ? ? ? ? child: Text(
? ? ? ? ? ? ? ? "拍照",
? ? ? ? ? ? ? ? style: TextStyle(fontSize: 32, color: Colors.white),
? ? ? ? ? ? ? )),
? ? ? ? ? SizedBox(
? ? ? ? ? ? height: 30,
? ? ? ? ? ),
? ? ? ? ? MaterialButton(
? ? ? ? ? ? ? minWidth: 100,
? ? ? ? ? ? ? height: 100,
? ? ? ? ? ? ? color: Colors.blue,
? ? ? ? ? ? ? onPressed: () {
? ? ? ? ? ? ? ? getImage(false);
? ? ? ? ? ? ? },
? ? ? ? ? ? ? child: Text("選擇照片",
? ? ? ? ? ? ? ? ? style: TextStyle(fontSize: 32, color: Colors.white))),
? ? ? ? ? _imgPath != null
? ? ? ? ? ? ? ? Image.file(
? ? ? ? ? ? ? ? ? _imgPath,
? ? ? ? ? ? ? ? ? fit: BoxFit.cover,
? ? ? ? ? ? ? ? )
? ? ? ? ? ? ? : Center(
? ? ? ? ? ? ? ? ? child: Text(
? ? ? ? ? ? ? ? ? "沒(méi)有選擇照片",
? ? ? ? ? ? ? ? ? style: TextStyle(fontSize: 32, color: Colors.black)s,
? ? ? ? ? ? ? ? ))
? ? ? ? ],
? ? ? ),
? ? );
? }
}
?
注意:此處保存的圖片存放在緩存中,如果需要保存到本地則需使用image_gallery_saver,用于保存。
以上就是 app直播系統(tǒng)源碼,F(xiàn)lutter拍照與選擇照片并且保存到本地實(shí)現(xiàn)的相關(guān)代碼,更多內(nèi)容歡迎關(guān)注之后的文章
?
本文摘自 :https://www.cnblogs.com/