编程实战——电影管理器之界面UI及动画切换

在前文“编程实战——电影管理器之利用MediaInfo获取高清视频文件的相关信息”中提到电影管理器的目的是方便播放影片,在想看影片时不需要在茫茫的文件夹下找寻。

我对电影管理器的想法如下:

1、可以全键盘操作(不依赖鼠标),最好是利用键盘上的小数字键区就能完成全部操作。

2、基于HTPC的全屏操作,故软件的大小为1920*1080

3、模仿时下流行的“磁贴”效果。

下图是本软件的初步的界面UI

解释一下:

1、HTPC的屏幕是1920*1080,在软件设计的时候,由于电脑的屏幕没那么大,初步设计为960*540,等调试完全没有问题后,再将分辨率调成1920*1080。

2、整个屏幕分为上下两个部分。上部是类别信息(上图中顶部的黑条,目前是空在那儿),下部是电影信息的磁贴

3、磁贴一共3*3=9个,分别用1-9标示,对应小数字键盘上的数字键,设想是按相应的数字键,调用系统播放器播放相应的影片

4、由于电影的数量众多,利用数字小键盘区上的/、*键实现电影列表的左右切换;利用-、+键实现电影列表的上下切换

现在的流行的UI,在列表切换的时候,都会有一段动画的切换效果,以避免呆板的效果。

下面就给出动画切换的实现代码

    Private Sub TransFilm(Bmp1 As Bitmap, Bmp2 As Bitmap) 
        Dim I As Integer 
        Dim X As Integer

Dim Steps As Integer = 35

_IsDrawing = True

_G.SetClip(New Rectangle(0, 30, 960, 510))

For I = 0 To Steps

X = Int((Math.Cos(I / Steps * Math.PI) - 1) * 480 + 0.5)

_G.DrawImageUnscaled(Bmp1, X, 30) 
            _G.DrawImageUnscaled(Bmp2, X + 960, 30)

PrivatePaint()

'Threading.Thread.Sleep(20)

Next

_G.ResetClip() 
        _IsDrawing = False 
    End Sub

首先,将要切换的2个电影列表绘到2个Bitmap对象(上面的代码没有显示描绘的代码,作为参数传入到方法中)。

所谓的动画,就是把动画拆成若干步,然后把每一步绘制到界面上,在每一步中间加上Threading.Thread.Sleep(20),使动画在不同的机器上动画的时间不会相差太大。

不过上面的代码,有这几个问题,不太好解决。写在这也是向网友求教,看看有没有啥好的解决方法

1、加上Threading.Thread.Sleep(20)后,在参数大于20,有频闪的现象。我已经用了双缓冲技术,_G就是在内存中开辟的缓冲区,在绘图完成后,用PrivatePaint方法把_G的内容绘制到WinForm上

2、把这句话注释后,虽然动画看起来快了很多,但是动画很流畅,没有频闪的现象。不过在Steps参数改成超过40后,还是有一丝闪烁。

有网友能给出比较好的VS的动画教程么?也考虑到也许用Directx.Direct2D实现动画效果比较好,只是相关的资料找寻比较少而作罢。

曾经考虑用WPF实现动画,不过相关的资料找寻比较少而作罢。不过WPF和WP7、WP8、IOS、Android等技术相似度比较高。在本软件的首个版本开发后,可以考虑用WPF技术再开发一个版本

编程实战——电影管理器之界面UI及动画切换的更多相关文章

  1. 编程实战——电影管理器之XML存储电影信息数据

    但凡管理器之类的软件,存储数据是必不可少的.存储数据的话,有几种选择.一是用数据库,把数据存储到数据库里:一是用文本文件,把数据存储到文本文件里:一种是利用XML文件,把数据对象转换为XML后,存储到 ...

  2. 编程实战——电影管理器之利用MediaInfo获取高清视频文件的相关信息

    随着高速(20M)宽带.HTPC.大容量硬盘(3T)的普及,下载高清片并利用大屏幕观看也成为普通的事情. 随着下载影片的增多,管理就有了问题,有时在茫茫文件夹下找寻一个影片也是一件费时费力的事. 于是 ...

  3. 电影管理器之XML存储电影信息数据

    电影管理器之XML存储电影信息数据 但凡管理器之类的软件,存储数据是必不可少的.存储数据的话,有几种选择.一是用数据库,把数据存储到数据库里:一是用文本文件,把数据存储到文本文件里:一种是利用XML文 ...

  4. ACtivity实现欢迎界面并添加动画切换效果

    先看效果: 中间切换动画没来得及截图,凑合着看吧. 主要是java代码的实现: Welcom.java package kehr.activity.welcome; import android.ap ...

  5. 10、会话管理/编程实战分析/Jsp

    1 会话管理回顾 会话管理 1)会话管理: 管理浏览器和服务器之间的会话过程中产生的会话数据 2)Cookie技术: 会话数据保存在浏览器客户端. Cookie核心的API: 2.1 在服务器端创建C ...

  6. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

  7. 三十三、Java图形化界面设计——布局管理器之null布局(空布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...

  8. 三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网 ...

  9. Linux下的编程实战【转】

    一篇比较不错的文章, 降到了 makefile make , gcc编译器,GDB调试器, Linux文件系统,Linux文件API,.C语言库函数(C库函数的文件操作实际上是独立于具体的操作系统平台 ...

随机推荐

  1. POJ3342——Party at Hali-Bula

    Party at Hali-Bula Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5418   Accepted: 192 ...

  2. 关于tcp封装http协议

    如果tcp中没有上层协议,那么就是简单的数据包的传输,如果tcp中有上层协议,那么,当客户端把tcp包发给server的时候,server端的socket收到数据包后,从中分离出应用层协议,交给上层继 ...

  3. NET Framework 4.5 五个新特性

    .NET Framework 4.5 五个新特性 Framework 4.5 已经开发了几个项目了,想去研究一下VS 2015 里面的跨平台..不过好像4.5内核新特性还没搞明白呢还是先看看4.5内核 ...

  4. Entity Framework 处理并发

    Entity Framework 处理并发 在以前的两个教程你对关联数据进行了操作.本教程展示如何处理并发性.您将创建工作与各Department实体的 web 页和页,编辑和删除Department ...

  5. typeof小结

  6. 记录一下Fedora21下安装Foundation5遇到的问题[尚有遗留问题]

    写在前面:之前安装过了gem,所以下面的步骤没有这一过程,再有就是忘记哪一步需要ruby中的一个.h文件.可以使用如下命令解决 sudo yum install ruby-devel ------ S ...

  7. 六大利器助Java程序开发事半功倍

    实用的开发工具对于Java程序开发者来说,工作起来事半功倍.本文中小编将为大家列举包括开发环境.分析测试.代码保护等实用工具. 开发环境 Sonarqube Sonarqube是一个开源平台,是一款代 ...

  8. 如何用CSC.exe来编译Visual C#的代码文件

    原文:如何用CSC.exe来编译Visual C#的代码文件 C#的编译过程      如何用CSC.exe来编译Visual C#的代码文件   Csc.exe 编译器的位置路径:C:\Window ...

  9. 【蜗牛—漫漫IT路之大学篇(九) 】

    再来一篇叨叨的博客 近期,状态还是那个状态,人还是那个人. 前两天,感冒了,可能是宿舍阴面的事吧.然后,中午睡觉的时候穿着短袖披了一件外套,然后鼻子就不通气了.只是,前天晚上,我骑着崔国强的车子跑了不 ...

  10. [翻译]初识SQL Server 2005 Reporting Services Part 2

    原文:[翻译]初识SQL Server 2005 Reporting Services Part 2 在Part 1文章中我们对SQL Server Reporting Services 2005(S ...