flutter_integrated_whb/lib/customWidget/single_image_viewer.dart

44 lines
1.3 KiB
Dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:photo_view/photo_view.dart';
import 'package:qhd_prevention/pages/my_appbar.dart';
// 查看大图
class SingleImageViewer extends StatelessWidget {
final String imageUrl;
const SingleImageViewer({Key? key, required this.imageUrl}) : super(key: key);
@override
Widget build(BuildContext context) {
ImageProvider provider;
if (imageUrl.toLowerCase().startsWith('http')) {
provider = NetworkImage(imageUrl);
} else {
provider = FileImage(File(imageUrl));
}
return Scaffold(
backgroundColor: Colors.black.withValues(alpha: 0.5),
appBar: MyAppbar(
isBack: false,
actions: [
IconButton(onPressed: () {
Navigator.of(context).pop();
}, icon: Icon(Icons.close, color: Colors.white, size: 40,),)
],
backgroundColor: Colors.black.withValues(alpha:0.5), title: '',
),
body: Center(
child: PhotoView(
imageProvider: provider,
backgroundDecoration: BoxDecoration(color: Colors.black.withValues(alpha:0.5)),
minScale: PhotoViewComputedScale.contained,
maxScale: PhotoViewComputedScale.covered * 2,
onTapUp: (context, details, controllerValue) {
Navigator.of(context).pop();
},
),
),
);
}
}