mod: 封面图比例

This commit is contained in:
guozhigq
2023-04-19 14:22:35 +08:00
parent 40b88eeeb2
commit 96e9dcc040
5 changed files with 11 additions and 11 deletions

View File

@ -4,5 +4,5 @@ class StyleString {
static const double cardSpace = 8; static const double cardSpace = 8;
static BorderRadius mdRadius = BorderRadius.circular(6); static BorderRadius mdRadius = BorderRadius.circular(6);
static const Radius imgRadius = Radius.circular(6); static const Radius imgRadius = Radius.circular(6);
static const double aspectRatio = 16 / 9; static const double aspectRatio = 16 / 10;
} }

View File

@ -25,6 +25,8 @@ class NetworkImgLayer extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double pr = MediaQuery.of(context).devicePixelRatio;
// double pr = 2;
return src != '' return src != ''
? ClipRRect( ? ClipRRect(
borderRadius: BorderRadius.circular(type == 'avatar' ? 50 : 4), borderRadius: BorderRadius.circular(type == 'avatar' ? 50 : 4),
@ -32,20 +34,16 @@ class NetworkImgLayer extends StatelessWidget {
imageUrl: src!, imageUrl: src!,
width: width ?? double.infinity, width: width ?? double.infinity,
height: height ?? double.infinity, height: height ?? double.infinity,
maxWidthDiskCache: maxWidthDiskCache: ((cacheW ?? width!) * pr).toInt(),
((cacheW ?? width!) * MediaQuery.of(context).devicePixelRatio)
.toInt(),
// maxHeightDiskCache: (cacheH ?? height!).toInt(), // maxHeightDiskCache: (cacheH ?? height!).toInt(),
memCacheWidth: memCacheWidth: ((cacheW ?? width!) * pr).toInt(),
((cacheW ?? width!) * MediaQuery.of(context).devicePixelRatio)
.toInt(),
// memCacheHeight: (cacheH ?? height!).toInt(), // memCacheHeight: (cacheH ?? height!).toInt(),
fit: BoxFit.fitWidth, fit: BoxFit.cover,
fadeOutDuration: fadeOutDuration:
fadeOutDuration ?? const Duration(milliseconds: 200), fadeOutDuration ?? const Duration(milliseconds: 200),
fadeInDuration: fadeInDuration:
fadeInDuration ?? const Duration(milliseconds: 200), fadeInDuration ?? const Duration(milliseconds: 200),
filterQuality: FilterQuality.high, // filterQuality: FilterQuality.high,
errorWidget: (context, url, error) => placeholder(context), errorWidget: (context, url, error) => placeholder(context),
placeholder: (context, url) => placeholder(context), placeholder: (context, url) => placeholder(context),
), ),

View File

@ -26,7 +26,7 @@ class VideoCardH extends StatelessWidget {
StyleString.cardSpace, 5, StyleString.cardSpace, 5), StyleString.cardSpace, 5, StyleString.cardSpace, 5),
child: LayoutBuilder(builder: (context, boxConstraints) { child: LayoutBuilder(builder: (context, boxConstraints) {
double width = double width =
(boxConstraints.maxWidth - StyleString.cardSpace * 3) / 2; (boxConstraints.maxWidth - StyleString.cardSpace * 6) / 2;
return SizedBox( return SizedBox(
height: width / StyleString.aspectRatio, height: width / StyleString.aspectRatio,
child: Row( child: Row(

View File

@ -48,7 +48,7 @@ class VideoCardV extends StatelessWidget {
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
// 指定图片尺寸 // 指定图片尺寸
// src: videoItem['pic'] + '@${(maxWidth * 2).toInt() }w', // src: videoItem.pic + '@${(maxWidth * 2).toInt()}w',
src: videoItem.pic + '@.webp', src: videoItem.pic + '@.webp',
width: maxWidth, width: maxWidth,
height: maxHeight, height: maxHeight,

View File

@ -18,6 +18,8 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return DynamicColorBuilder( return DynamicColorBuilder(
builder: ((lightDynamic, darkDynamic) { builder: ((lightDynamic, darkDynamic) {
// 图片缓存
// PaintingBinding.instance.imageCache.maximumSizeBytes = 1000 << 20;
return GetMaterialApp( return GetMaterialApp(
title: 'PiLiPaLa', title: 'PiLiPaLa',
theme: ThemeData( theme: ThemeData(