Posts filed under 'Symbian时钟屏保'
开发过程中发现:用FP1编出来的sis,其图标无法正常显示在MR的手机上(N80和N73都显示空白),如FP1手机(N95)可以正常显示。
解决方法:都用MR编
Carbide.C++ 1.2中右键点工程,选择属性,选择”Carbide build Configuration”,在Active Configuration中点Manage,并选中MR的sdk,然后用那个sdk编译,出来的sis可以正常显示图标!
Freeware中要弹出一个对话框,告诉用户这是个freeware,英语的好办,没有任何问题。
但是翻译成中文后,保存为UTF-8,N80上出来的是乱码,而N95上又是对的。
比较好的方法,是将该文件保存为Unicode格式!!!
Popularity: 8% [?]
09月 28th, 2007
如何安装:
1,需要自签名
2,安装签名后的程序
3,设置:
N95:工具->主题模式->节电保护->Large clock
N73,N80:工具->主题模式->选项->编辑->节电保护->Large clock
根据论坛上朋友们要求 ,做了如下改进:
1,加入了设置选项,设置支持中文。
2,设置背景 - 白底黑字或者黑底白字。
3,设置分辨率 - 240*320 或者 352*416 适合不同手机分辨率,如N95和N80。
4,设置刷新时间 - 1秒或者1分钟,节电选项,1分钟时不显示秒针。
5,屏保显示时根据设置值立刻变化。
6,界面弄了一个手写的“钟”,作图太麻烦,自己随便写的,哈哈

欢迎提出改进意见~~~
Popularity: 7% [?]
09月 24th, 2007
经过两天的努力,终于搞定了SettingList显示配置项,退出后保存到二进制文件中,
同时ScreenSaverDLL也可以读取该文件的内容。
下一步要做的,
1,界面显示中文
2,ScreenSaver的ConstructL和InistialiseL只调用一次,需要考虑一个策略。
3,ScreenSaver的dll和rsc加入ClockSSConfig工程中,或者新弄一个GUI+DLL的工程?
4,细化,优化,准备symbian sign!
Popularity: 6% [?]
09月 23rd, 2007
做一个GUI程序,界面就一个SettingList够了。把用户的配置信息保存到文件里。
本来想写个ini文件,但是后来发现,在ECom的DLL里面读写有问题:因为ini文件需要在Application里面重载一个函数,但是ECom的DLL中根本就没有Application。
接着的想法是直接用ReadStream,WriteStream写一个二进制文件,把配置的数据保存在二进制文件中,然后再在ECom的DLL中读出来。
文件的位置放在哪儿呢?
因为GUI和ECom的DLL是两个不同程序,所以也就不能放在private\E3B08845这种目录下面。
因为GUI能读到的话,EComDLL就读不到,反之亦然。
ps,hongkong nokia开发的那个程序好像可以放到那种目录下面的,不知道是如何实现的,有空研究一下!
最后还是最简单的方法实现吧,放到C:\data目录下总没有什么问题吧,赫赫。
Popularity: 7% [?]
09月 23rd, 2007
论坛上好多人提了意见,下载也突破200次了,晚上花了2个钟头,改进的一些地方:

1,由白底黑字改为黑底白字,好像是稍微好看了一点
2,加入3,6,9,12四个整点,增加美观度 
3,星期几加到了日期后面,改为3位统一显示,看起来比较清楚
4,最下面改为”Happy EveryDay :-)”,每天都应该开开心心的嘛,嘿嘿!
本来想去SymbianSign一下,省得别人下载了还要自己去sign!
不过好贵,要186欧元 = 1 940.35621 人民币!
可以考虑去弄个freeware~~~
下一步做得:做一个GUI的设置程序,可以控制一下内容:
a,支持大数字/模拟时钟切换
b,支持黑底白字/白底黑字选择
c,是否显示秒钟(每分钟刷新一次,可以更加省电)
d,设置自己的话,默认为”Happy EveryDay :-)”
e,横向显示/竖向显示
f,看看是否有其他新的要求
Popularity: 6% [?]
09月 19th, 2007
本文参考NewLC的Tutorial,并通过自己创建一个dll工程实现
类需要继承CScreensaverPluginInterfaceDefinition,
并实现MScreensaverPlugin接口的一些虚函数
class CClockScreenSaver :
public CScreensaverPluginInterfaceDefinition
virtual TInt InitializeL(MScreensaverPluginHost *aHost);
virtual TInt Draw(CWindowGc& aGc);
virtual const TDesC16& Name() const;
virtual TInt HandleScreensaverEventL(TScreensaverEvent aEvent,
TAny* aData);
需要一个RSS文件,告诉ECom框架所需要的信息
需要一个ImplementationProxy.cpp文件,
Helps the ECom framework locating the interface implementations
MMP中,TARGETTYPE是PLUGIN , UID 是:0×10009D8D 0×06EF7F58
需要很多Capabilities,所以只能用开发者证书来sign。
pkg文件中dll的位置应该放到sysbin下面
“C:Symbian9.2S60_3rd_FP1Epoc32releaseGCCEURELClockScreenSaver.dll”
-“!:sysbinClockScreenSaver.dll
基本上就这些,总体感觉还是比较简单的。
模拟时钟的关键代码都在Draw函数中。
我这里用到了画圆,画线,TTime,TDateTime,字符串转换等。
最后show一下效果:

Popularity: 6% [?]
09月 18th, 2007