This commit is contained in:
bluesea 2024-05-15 11:51:05 +08:00
parent 46293a379a
commit 2e0e6acc26
6 changed files with 61 additions and 17 deletions

View File

@ -2,11 +2,12 @@ import 'package:get/get.dart';
import 'package:wallpaper/models/imgnetodel.dart'; import 'package:wallpaper/models/imgnetodel.dart';
import 'package:wallpaper/routes/app_routes.dart'; import 'package:wallpaper/routes/app_routes.dart';
import 'package:wallpaper/utils/downloadmanager.dart'; import 'package:wallpaper/utils/downloadmanager.dart';
import 'dart:io';
class ImgCategoryPageController extends GetxController { class ImgCategoryPageController extends GetxController {
var stitle = RxString(""); var stitle = RxString("");
// ignore: prefer_typing_uninitialized_variables // ignore: prefer_typing_uninitialized_variables
late NetImgCategory dataModel; late NetImgCategory dataModel;
var isAndroid = Platform.isAndroid;
@override @override
void onInit() { void onInit() {
@ -29,8 +30,16 @@ class ImgCategoryPageController extends GetxController {
await DownloadManager.saveNetworkImage(imgUrl); await DownloadManager.saveNetworkImage(imgUrl);
//android, //android,
//.... // if (Platform.isAndroid) {
//
// }
//
//....
}
void setWallpaper(String imgUrl) {
print("....set wall....");
} }
} }

View File

@ -82,20 +82,7 @@ class ImgCategoryPageView extends GetView<ImgCategoryPageController> {
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
// column来说就是水平方向的布局方式 // column来说就是水平方向的布局方式
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: getButtomWidge(imgUrl),
IconButton(onPressed:() {
print("download....");
controller.downloadImg(imgUrl);
}, icon: Icon(Icons.download),color: Colors.white,),
IconButton(onPressed:() {
print("设置壁纸");
controller.saveImgToAlbum(imgUrl);
}, icon: Icon(Icons.wallpaper),color: Colors.white,),
],
), ),
), ),
), ),
@ -107,7 +94,30 @@ class ImgCategoryPageView extends GetView<ImgCategoryPageController> {
} }
List<Widget> getButtomWidge(String imgUrl){
List<Widget> wg = [
IconButton(onPressed:() {
print("download....");
controller.downloadImg(imgUrl);
}, icon: Icon(Icons.download),color: Colors.white,),
IconButton(onPressed:() {
print("保存至相册");
controller.saveImgToAlbum(imgUrl);
}, icon: Icon(Icons.album),color: Colors.white,),
];
if (controller.isAndroid) {
wg.add(IconButton(onPressed:() {
print("设置壁纸");
controller.setWallpaper(imgUrl);
}, icon: Icon(Icons.wallpaper),color: Colors.white,));
}
return wg;
}
} }

View File

@ -4,6 +4,7 @@ import 'package:flutter/foundation.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:image_gallery_saver/image_gallery_saver.dart';
import 'package:wallpaper/utils/local_img_manager.dart'; import 'package:wallpaper/utils/local_img_manager.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:async_wallpaper/async_wallpaper.dart';
class DownloadManager { class DownloadManager {
static Future<bool> downloadImgWithUrl(String urlStr) async { static Future<bool> downloadImgWithUrl(String urlStr) async {
@ -66,6 +67,9 @@ class DownloadManager {
quality: 60, quality: 60,
name: "hello"); name: "hello");
print(result); print(result);
} }

View File

@ -9,6 +9,8 @@ import 'dart:convert';
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
class LocalImgManager { class LocalImgManager {
static Future<String> getImgLocalDir() async { static Future<String> getImgLocalDir() async {
Directory dir = await getApplicationCacheDirectory(); Directory dir = await getApplicationCacheDirectory();

View File

@ -33,6 +33,14 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.11.0" version: "2.11.0"
async_wallpaper:
dependency: "direct main"
description:
name: async_wallpaper
sha256: d4cf1fff78cf91982b447c82ab5248a7921996b95a43772a6fc7c971bd976ded
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.3"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
@ -304,6 +312,14 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
fluttertoast:
dependency: transitive
description:
name: fluttertoast
sha256: "81b68579e23fcbcada2db3d50302813d2371664afe6165bc78148050ab94bf66"
url: "https://pub.flutter-io.cn"
source: hosted
version: "8.2.5"
frontend_server_client: frontend_server_client:
dependency: transitive dependency: transitive
description: description:

View File

@ -55,6 +55,9 @@ dependencies:
#随机生成文件名 #随机生成文件名
crypto: ^3.0.3 crypto: ^3.0.3
#android设置壁纸
async_wallpaper: ^2.0.3
#将图片导出到相册 #将图片导出到相册
image_gallery_saver: ^2.0.3 image_gallery_saver: ^2.0.3
permission_handler: ^10.0.0 permission_handler: ^10.0.0