images_picker
1.0.0
ปลั๊กอิน Flutter สำหรับเลือกรูปภาพ/วิดีโอจากไลบรารีรูปภาพ Android และ iOS และถ่ายภาพ/วิดีโอด้วยกล้อง บันทึกรูปภาพ/วิดีโอลงในอัลบั้ม/แกลเลอรี
iOS (10+): ZLPhotoBrowser
Android (21+): ตัวเลือกรูปภาพ
สำหรับไอโอเอส:
<key>NSCameraUsageDescription</key>
<string>Example usage description</string>
<key>NSMicrophoneUsageDescription</key>
<string>Example usage description</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Example usage description</string>
สำหรับหุ่นยนต์:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Goto android/app/build.gradle
minSdkVersion 21
และ,
images_picker : ^newest
import "package:images_picker/images_picker.dart" ;
Future getImage () async {
List < Media > res = await ImagesPicker . pick (
count : 3 ,
pickType : PickType .image,
);
// Media
// .path
// .thumbPath (path for video thumb)
// .size (kb)
}
Future getImage () async {
List < Media > res = await ImagesPicker . pick (
count : 3 ,
pickType : PickType .video,
);
// Media
// .path
// .thumbPath (path for video thumb)
// .size (kb)
}
ImagesPicker . openCamera (
pickType : PickType .video,
maxTime : 15 , // record video max time
);
ImagesPicker . pick (
// ...
gif : true , // default is true
);
ImagesPicker . pick (
// ...
maxTime : 30 , // second
);
ImagesPicker . pick (
// ...
// when cropOpt isn't null, crop is enabled
cropOpt : CropOption (
aspectRatio : CropAspectRatio .custom,
cropType : CropType .rect, // currently for android
),
);
ImagesPicker . pick (
// ...
// when maxSize/quality isn't null, compress is enabled
quality : 0.8 , // only for android
maxSize : 500 , // only for ios (kb)
);
ImagesPicker . pick (
language : Language . English ,
// you can set Language.System for following phone language
)
ImagesPicker . saveImageToAlbum (file, albumName : "" );
ImagesPicker . saveVideoToAlbum (file, albumName : "" );
เนื่องจากคำขอ HTTP ไม่สามารถควบคุมได้ในปลั๊กอิน (เช่น ความคืบหน้า) คุณต้องดาวน์โหลดไฟล์ล่วงหน้า
void save () async {
File file = await downloadFile ( 'https://xxx.example.com/xx.png' );
bool res = await ImagesPicker . saveImageToAlbum (file, albumName : "" );
print (res);
}
Future < File > downloadFile ( String url) async {
Dio simple = Dio ();
String savePath = Directory .systemTemp.path + '/' + url. split ( '/' ).last;
await simple. download (url, savePath,
options : Options (responseType : ResponseType .bytes));
print (savePath);
File file = new File (savePath);
return file;
}
// for pick
int count = 1 ,
PickType pickType = PickType .image,
bool gif = true ,
int maxTime = 120 ,
CropOption cropOpt,
int maxSize,
double quality,
// for camera
PickType pickType = PickType .image,
int maxTime = 15 ,
CropOption cropOpt,
int maxSize,
double quality,
-keep class com.luck.picture.lib.** { *; }
-dontwarn com.yalantis.ucrop**
-keep class com.yalantis.ucrop** { *; }
-keep interface com.yalantis.ucrop** { *; }
ใบอนุญาตเอ็มไอที