s
This commit is contained in:
parent
dce5689ce4
commit
badd6b9f13
@ -5,8 +5,8 @@ import 'package:wallpaper/utils/dbmanager.dart';
|
|||||||
|
|
||||||
// import 'TestApp.dart';
|
// import 'TestApp.dart';
|
||||||
import 'WallPaperApp.dart';
|
import 'WallPaperApp.dart';
|
||||||
void main() {
|
void main() async {
|
||||||
DBManager.initAdapter();
|
await DBManager.initAdapter();
|
||||||
runApp(const WallPaperApp());
|
runApp(const WallPaperApp());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,42 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:wallpaper/utils/dbmanager.dart';
|
||||||
|
import 'package:wallpaper/utils/downloadmanager.dart';
|
||||||
|
import 'package:wallpaper/utils/local_img_manager.dart';
|
||||||
|
|
||||||
class DownloadPageController extends GetxController {
|
class DownloadPageController extends GetxController {
|
||||||
|
var dataItems = <LocalImageInfo>[].obs;
|
||||||
|
// ignore: prefer_typing_uninitialized_variables
|
||||||
|
var localDir = RxString("");
|
||||||
|
var isAndroid = Platform.isAndroid;
|
||||||
|
@override
|
||||||
|
Future <void> onInit() async{
|
||||||
|
super.onInit();
|
||||||
|
localDir.value = await LocalImgManager.getImgLocalDir();
|
||||||
|
dataItems.value = DBManager.allImgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Future < void> saveImgToAlbum(String imgUrl) async {
|
||||||
|
await DownloadManager.saveNetworkImage(imgUrl);
|
||||||
|
|
||||||
|
//如果是android,还应该调用设置壁纸的功能
|
||||||
|
// if (Platform.isAndroid) {
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
//给结果提示框
|
||||||
|
//....
|
||||||
|
}
|
||||||
|
|
||||||
|
Future <void> setWallpaper(String imgUrl) async {
|
||||||
|
await DownloadManager.setWallpaper(imgUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,19 +1,102 @@
|
|||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:transparent_image/transparent_image.dart';
|
||||||
import 'package:wallpaper/pages/downloadpage/downloadpage_controller.dart';
|
import 'package:wallpaper/pages/downloadpage/downloadpage_controller.dart';
|
||||||
|
|
||||||
class DownloadPageView extends GetView<DownloadPageController> {
|
class DownloadPageView extends GetView<DownloadPageController> {
|
||||||
const DownloadPageView({super.key});
|
// const DownloadPageView({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final Widget bodyView = getBodyWidget();
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: const Text("下载"),
|
title: const Text("下载"),
|
||||||
),
|
),
|
||||||
body: const Center(
|
body: bodyView,
|
||||||
child: Text("下载的..."),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//返回内容
|
||||||
|
Widget getBodyWidget(){
|
||||||
|
return Obx(() => GridView.count(
|
||||||
|
crossAxisCount: 2,
|
||||||
|
mainAxisSpacing: 2,
|
||||||
|
crossAxisSpacing: 2,
|
||||||
|
childAspectRatio: 0.7,
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 5),
|
||||||
|
// padding: const EdgeInsets.fromLTRB(5, 50, 5, 0),
|
||||||
|
children: List.generate(controller.dataItems.length, (index) {
|
||||||
|
return getBodyItem(controller.dataItems[index].localUrl!);
|
||||||
|
}),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
Stack getBodyItem(String fileName) {
|
||||||
|
var imgUrl = controller.localDir.value +'/'+ fileName;
|
||||||
|
return Stack(//堆叠效果
|
||||||
|
children: [
|
||||||
|
Image.file(
|
||||||
|
File(imgUrl),
|
||||||
|
width: double.infinity,
|
||||||
|
height: double.infinity,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
|
// Image.file(imgUrl),
|
||||||
|
// FadeInImage.loadImageByFile(
|
||||||
|
// width: double.infinity,
|
||||||
|
// height: double.infinity,
|
||||||
|
// placeholder: kTransparentImage,
|
||||||
|
// image: imgUrl,
|
||||||
|
// fit: BoxFit.cover,
|
||||||
|
// ),
|
||||||
|
|
||||||
|
Material(
|
||||||
|
color: Colors.transparent,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () {
|
||||||
|
//前往看大图
|
||||||
|
//.....
|
||||||
|
},
|
||||||
|
child: Align(
|
||||||
|
alignment: Alignment.bottomCenter,
|
||||||
|
child: Container(
|
||||||
|
color: Colors.black.withAlpha(160),
|
||||||
|
height: 40,
|
||||||
|
width: double.infinity,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
// 交叉轴的布局方式,对于column来说就是水平方向的布局方式
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: getButtomWidge(imgUrl),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<Widget> getButtomWidge(String imgUrl){
|
||||||
|
List<Widget> wg = [
|
||||||
|
IconButton(onPressed:() {
|
||||||
|
controller.saveImgToAlbum(imgUrl);
|
||||||
|
|
||||||
|
}, icon: const Icon(Icons.album),color: Colors.white,),
|
||||||
|
];
|
||||||
|
if (controller.isAndroid) {
|
||||||
|
wg.add(IconButton(onPressed:() {
|
||||||
|
controller.setWallpaper(imgUrl);
|
||||||
|
|
||||||
|
}, icon: const Icon(Icons.wallpaper),color: Colors.white,));
|
||||||
|
}
|
||||||
|
return wg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -4,7 +4,6 @@ import "package:wallpaper/utils/assettool.dart";
|
|||||||
import 'package:wallpaper/models/imgnetodel.dart';
|
import 'package:wallpaper/models/imgnetodel.dart';
|
||||||
class HomePageController extends GetxController {
|
class HomePageController extends GetxController {
|
||||||
var typeList = <NetImgCategory>[].obs;
|
var typeList = <NetImgCategory>[].obs;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onReady() async{
|
void onReady() async{
|
||||||
super.onReady();
|
super.onReady();
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:wallpaper/pages/downloadpage/downloadpage_view.dart';
|
||||||
import 'package:wallpaper/pages/homePage/homePage_view.dart';
|
import 'package:wallpaper/pages/homePage/homePage_view.dart';
|
||||||
import 'package:wallpaper/pages/collectionpage/collectionpage_view.dart';
|
import 'package:wallpaper/pages/collectionpage/collectionpage_view.dart';
|
||||||
import 'package:wallpaper/pages/mypage/mypage_view.dart';
|
import 'package:wallpaper/pages/mypage/mypage_view.dart';
|
||||||
@ -36,8 +37,8 @@ class TabbarPageView extends GetView <TabbarPageController>{
|
|||||||
label: "Home"
|
label: "Home"
|
||||||
),
|
),
|
||||||
const BottomNavigationBarItem(
|
const BottomNavigationBarItem(
|
||||||
icon: Icon(Icons.collections),
|
icon: Icon(Icons.download),
|
||||||
label: "收藏"
|
label: "下载"
|
||||||
),
|
),
|
||||||
const BottomNavigationBarItem(
|
const BottomNavigationBarItem(
|
||||||
icon: Icon(Icons.person),
|
icon: Icon(Icons.person),
|
||||||
@ -48,7 +49,7 @@ class TabbarPageView extends GetView <TabbarPageController>{
|
|||||||
|
|
||||||
//返回每个tabitem对应控制器视图,必须一一对应
|
//返回每个tabitem对应控制器视图,必须一一对应
|
||||||
List<Widget> getPages(){
|
List<Widget> getPages(){
|
||||||
return [const HomePageView(),const CollectionPageView(),const MyPageView(),];
|
return [const HomePageView(), DownloadPageView(),const MyPageView(),];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -16,14 +16,13 @@ class LocalImageInfo extends HiveObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class DBManager {
|
class DBManager {
|
||||||
static late Box box;
|
static late Box<LocalImageInfo> box;
|
||||||
|
|
||||||
static Future<Box> initAdapter()async {
|
static Future<void> initAdapter()async {
|
||||||
await Hive.initFlutter();
|
await Hive.initFlutter();
|
||||||
Hive.registerAdapter(LocalImageInfoAdapter());
|
Hive.registerAdapter(LocalImageInfoAdapter());
|
||||||
var downloadAlbums = await Hive.openBox('DownloadAlbums');
|
var downloadAlbums = await Hive.openBox<LocalImageInfo>('DownloadAlbums');
|
||||||
DBManager.box = downloadAlbums;
|
DBManager.box = downloadAlbums;
|
||||||
return downloadAlbums;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static addImg(String localFileName) {
|
static addImg(String localFileName) {
|
||||||
@ -35,7 +34,8 @@ class DBManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static List<LocalImageInfo> allImgs() {
|
static List<LocalImageInfo> allImgs() {
|
||||||
return DBManager.box.values.toList() as List<LocalImageInfo>;
|
var lis = DBManager.box.values.toList();
|
||||||
|
return lis ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user