电子相册实现滑动解锁、JPG和BMP图片显示  用到的技巧有文件/系统IO函数,双向循环链表,目录检索和BMP,JPG图片显示的函数

源码在压缩包里

int main(int argc, char *argv[])

{

//初始化设备

Lcd_Init();

//显示锁屏界面

Show_bmp(0, 0,"lock.bmp");

usleep(1000);

//显示锁屏logo

Show_bmp(100, 370,"logo.bmp");

while(1)

{

//获取坐标

get_ts_xy();

Show_bmp(100,370,"frame.bmp");

usleep(10);

//触摸得到x轴变化的坐标,锁屏界面和logo的图标交替刷新,达到logo移动的效果

Show_bmp(a, 370,"logo.bmp");

//判断滑块到达锁屏框最后,松手则跳出循环

if(ts_x2 >= 420&&ts_y2>370&&ts_y2<450)

{

break;

}

}

//在锁屏框最后显示解锁成功的logo

Show_bmp(420, 370,"unlock.bmp");

usleep(500000);   //延时0.5秒

printf("success!!\n");

/*****************************************************************/

d_list = Create_List();

D_Node *p=NULL;

//播放音乐

system("madplay faded.mp3 &");

//检索指定目录里的所有bmp图片,并添加进链表

search_dir("./pic");

p=d_list->next;

printf("It's never too late to learn!\n");

int flag1;

while(1)

{

//显示解锁后的主页面

Show_bmp(0, 0, "main.bmp");

get_x1y1();

//循环显示照片

if(x_2>55&&x_2<315&&y_2>390&&y_2<460)

{

flag1 = 0;

while(1)

{

//检测bmp图片并下拉显示bmp图片

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 0)

{

Show_4_bmp(p->picname);

show_buf1();

printf("This is bmp\n");

flag1 = 1;

}

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)

{

p=p->next;

usleep(1000000);

}

//跳出循环

if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)

{

break;

}

//检测bmp图片并上拉显示bmp图片

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 1)

{

Show_4_bmp(p->picname);

show_buf2();

printf("This is bmp\n");

flag1 = 0;

}

//检测jpg图片并显示jpg图片

if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)

{

show_jpg(p->picname);

printf("This is jpg\n");

}

usleep(1000000);        //延时1秒

p=p->next;

//跳出循环

if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)

{

break;

}

}

}

//滑动显示照片

if(x_2>490&&x_2<750&&y_2>390&&y_2<460)

{

flag1 = 0;

p=d_list->next;

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)

{

Show_4_bmp(p->picname);

show_buf1();

printf("This is bmp\n");

}

if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)

{

show_jpg(p->picname);

printf("This is jpg\n");

}

while(1)

{

get_x1y1();

get_flag();

//向右滑

if(i == 1)

{

p = p->next;

//向右慢慢显示bmp照片

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)

{

Show_4_bmp(p->picname);

show_buf5();

printf("This is bmp\n");

}

//显示jpg图片

if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)

{

show_jpg(p->picname);

printf("This is jpg\n");

}

if(p == d_list)

{

p = p->next;

}

}

//向左滑

if(i == 2)

{

p = p->prev;

//向左慢慢显示bmp照片

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)

{

Show_4_bmp(p->picname);

show_buf6();

printf("This is bmp\n");

}

if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)

{

show_jpg(p->picname);

printf("This is jpg\n");

}

if(p == d_list)

{

p = p->prev;

}

}

//向上滑

if(i == 3)

{

break;

}

//向下滑

if(i == 4)

{

p=d_list->next;

while(1)

{

//横向百叶窗显示bmp图片

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 0)

{

Show_4_bmp(p->picname);

show_buf3();

printf("This is bmp\n");

flag1 = 1;

}

if(strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)

{

p = p->next;

usleep(1000000);        //延时1秒

}

if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)

{

break;

}

//纵向百叶窗显示bmp图片

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 1)

{

Show_4_bmp(p->picname);

show_buf4();

printf("This is bmp\n");

flag1 = 0;

}

//显示jpg图片

if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)

{

show_jpg(p->picname);

printf("This is jpg\n");

}

usleep(1000000);        //延时1秒

p=p->next;

if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)

{

break;

}

}

}

}

}

if(i == 3)

{

break;

}

/*                 //判断向上划退出

if(((x_2-x_1)x_1)&&(y_2

{

printf("sa yo la la!\n");

break;

}

if(((x_1-x_2)

{

printf("sa yo la la!\n");

break;

}*/

}

//音乐停止

printf("stop!\n");

system("killall -9 madplay");

//居中显示

show_middle_bmp("05.bmp");

usleep(300000);

//小惊喜

printf("suprise!!!!!!!!!!!!!\n");

p=d_list->prev;

flag1 = 0;

while(1)

{

//显示bmp图片

if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)

{

Show_4_bmp(p->picname);

show_buf0();

printf("This is bmp\n");

}

usleep(30000);

p = p->prev;

if(p == d_list)

{

flag1++;

p=d_list->prev;

}

if(flag1 == 2)

{

break;

}

}

show_middle_bmp("bye.bmp");

//关闭设备

Lcd_Uninit();

51hei图片_20190805192249.png (2.13 MB, 下载次数: 41)

2019-8-5 19:24 上传

51hei图片_20190805192311.png (2.71 MB, 下载次数: 35)

2019-8-5 19:24 上传

51hei图片_20190805192315.png (2.61 MB, 下载次数: 102)

2019-8-5 19:24 上传

51hei图片_20190805192318.png (3.79 MB, 下载次数: 31)

2019-8-5 19:25 上传

51hei图片_20190805192322.png (3.81 MB, 下载次数: 40)

2019-8-5 19:25 上传

2019-8-5 19:17 上传

点击文件名下载附件

下载积分: 黑币 -5

19.9 KB, 下载次数: 95, 下载积分: 黑币 -5

源代码

linux电子相册登录界面代码,基于Liunx系统和6818开发板的电子相册 附源程序相关推荐

  1. linux电子相册登录界面代码,Linux项目开发—电子相册

    1.简述:电子相册,开发一个在ARM9开发板上的电子相册,实现图片的播放: 2.工具.材料:电脑(带有Ubuntu等系列Linux系统).ARM9系列开发板.串口线一根.串口通信软件SecureCRT ...

  2. 手把手教linux设备驱动,手把手教你写Linux设备驱动---定时器(一)(基于友善之臂4412开发板)...

    这个专题我们来说下Linux中的定时器. 在Linux内核中,有这样的一个定时器,叫做内核定时器,内核定时器用于控制某个函数,也就是定时器将要处理的函数在未来的某个特定的时间内执行.内核定时器注册的处 ...

  3. 班级管理html注册登录界面代码,基于JSP和SSH框架实现的班级管理系统

    1 系统需求的分析 1.1 需求分析 本项目所开发的班级管理系统完成学校对学生的班级信息的统计与管理,减少数据漏掉的情况,同时也节约人力.物力和财力,告别以往的人工统计.方便学生使用,学生可以在线查看 ...

  4. linux 新用户 界面登录,如何在Linux系统登录界面加入个性化提示信息

    如何在Linux系统登录界面加入个性化提示信息 Linux字符界面看久了容易乏味,如果在登录时加点个性化显示看着也比较舒服,下面小编就给大家介绍下如何在Linux系统登录界面加入个性化提示信息,一起来 ...

  5. 给我一个web前端的登录界面代码

    下面是一份简单的 HTML 和 CSS 登录界面代码示例: <!DOCTYPE html> <html><head><meta charset="u ...

  6. STM32下载程序至SRAM——基于正点原子精英STM32F103ZET6开发板

    STM32下载程序至SRAM--基于正点原子精英STM32F103ZET6开发板 如题,由于STM32的FLASH烧写寿命在1万次左右,对于本人这样的改一行代码都想下载到开发板中测试的强迫症患者,真是 ...

  7. 基于TI AM335x创龙开发板U-Boot编译

    分享一下基于广州创龙TL335x-IDK开发板的U-Boot编译.希望能帮助上你. 板子特点如下:  基于 TI AM335x ARM Cortex-A8 CPU,主频可高达 1GHz,运算能力可高 ...

  8. PAJ7620手势传感器快速应用- -基于涂鸦CBU模组开发板

    PAJ7620手势传感器快速驱动- -基于涂鸦CBU模组开发板 正在,或是想要开发物联网小产品的你是否会觉得一些常用的控制需要繁琐地掏出手机会让你的产品体验不佳?添加实体按键又显得太 low ?不妨来 ...

  9. 嵌入式Linux开发-6818开发板使用流程

    1. linux 运行c文件 先在window下编译C文件 在虚拟机共享此文件 在linux运行终端 cd /路径 gcc test.c -o 2 ./2 注:TAB键和空格的区别,空格在不同编译软件 ...

最新文章

  1. 禁止java更新_禁止:禁止对'replicas','template'和'updateStrategy'以外的字段的statefulset规范进行更新...
  2. vmware克隆虚拟机
  3. Windows Server 2003摆脱了恼人的Ctrl+Alt+Del
  4. eclipse中配置Maven仓库
  5. 【NLP】图解 Attention完整版
  6. cr2032和br2032区别_钮扣电池CR2016和CR2032有什么区别?
  7. bartlett方差齐性检验_数据总体分布检验
  8. Android状态页切换(数据加载中,数据加载失败,空数据)
  9. echarts矢量地图基本实现
  10. 数据库技术与应用习题2
  11. HTML5,不只是看上去很美 (第一弹:彩虹爆炸图)
  12. 【最优估计学习笔记】概率密度函数
  13. 老年人-傻妞机器人安装及使用教程
  14. 用表格做一个简单地个人简历
  15. linux更换steam目录,如何在Linux上备份Steam游戏数据 | MOS86
  16. 如何进行PDF页码删除操作 删除页面的技巧有那些
  17. 【UE】倒计时归零时结束游戏
  18. emui华为java2p_同属华为,却是两个相对独立的系统,Magic系统和EMUI区别在哪?...
  19. 计算机考试ppt应用,职称计算机考试辅导:Powerpoint使用母版
  20. CleanMyMac 3自定义智能清理

热门文章

  1. Beginners Guide To The MQTT Protocol
  2. 2021-11-11 使用Mac启动vue项目
  3. 点对点视频服务器系统,点对点视频会议系统解决方案
  4. 魔兽服务器联盟在线,魔兽世界2018联盟服务器 | 手游网游页游攻略大全
  5. 基于nodejs+vue+mysql在线化妆品购物商城网站设计
  6. 金蝶云星空-重构管理中心与数据库
  7. ”大学生创新创业训练计划项目“
  8. 阿里云com域名收费清单来了注册、续费和转入都有
  9. 挂耳式耳机哪个牌子好?这次推荐准没错!
  10. 透视投影的原理和实现-转载