multi_image_picker 使用文档
按照文档使用操作老项目androidx没有转换成功,所以想直接创建androidx尝试一下
本次以demo为例,所以老项目的androidx版本更改还没有研究
1、初始化androidx项目
flutter create --androidx androidx_demo
2、创建成功后用vscode打开项目
3、pubspec.yaml中导入 multi_image_picker: ^4.3.6
4、按照项目实际需求配置android和ios配置
android/app/src/main/AndroidMainFest.xml
package="com.example.androidx_demo">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
5、 注意点
此时还需要注意multi_image_picker 中 minSdkVersion 对应的是 19,所以我们去android/appbuild.gradle 更改对应版本 minSdkVersion 19
ios info.plist 中进行对应配置
<key>NSPhotoLibraryUsageDescription</key>
<string>Example usage description</string>
<key>NSCameraUsageDescription</key>
<string>Example usage description</string>
6、iOS比较简单,只是需要先flutter pub get 将项目的Podfile 更新出来,打开指定最低版本 ,后面在追加不使用静态库
platform :ios, '9.0'
use_frameworks!
7、实际使用
// 接受返回的图片
List<Asset> images = List<Asset>();
// 展示返回的图片
Widget _buildGridView() {
return GridView.count(
crossAxisCount: 3,
children: List.generate(images.length, (index) {
Asset asset = images[index];
return AssetThumb(
asset: asset,
width: 300,
height: 300,
);
}),
);
}
//
void _choiceImages() async {
var list =
await MultiImagePicker.pickImages(maxImages: 9, enableCamera: true);
setState(() {
images = list;
});
}
网友评论