日期:2014-05-18  浏览次数:20939 次

「玩一玩」仿 iOS 图标上叠加数字提示(如未读短信、未接电话)
吃饭前玩玩,刚才做的实验,新鲜热辣

首先,这只是个实验,纯 GDI+ 画的。和网上其他实现无关,所以不要说别人的做的漂亮些(我也羡慕)

其次,截图里的 iOS 图标和演示的看起来比例不大一样,那是因为 iOS 的图标都是 64x64 开外的大图标

演示里用的只是 32x32 的小图标(手上没货),所以如果你手里有 64x64 以上的大图标,欢迎在回帖里

把效果截图贴出来,最好是和 iOS 做个对比(有时候,自取其辱也是提高的一个捷径)

p.s. 做实验而已,所以只能显示 1 位数字


还是老规矩,DEMO 和源码

点我下载 DEMO

点我下载源码

--------正文-----------

相信大家对风行全球,迷倒无数潮男潮女,把妹达人必备的苹果的大名已经是如雷贯耳了

苹果流行的一个重要原因是它的界面很骚,而且经常创新,通俗点说,就是独领风骚

下图是苹果的一个很好的点子(我不保证这是苹果原创的,谁知道呢)

如果你有未接来电或者短信,iOS 会在图标上叠加数字来提醒,就像这样




看起来似乎很好。我把它拿到桌面上来(现在很多软件都已经实现了这个功能,所以我说只是玩玩而已)

分析下这个东西的层次结构,应该(或者说我理解)就像这样



目标找到了,剩下的无非就是画图的工作了,下面是刚才做的实验截图




再次说明,这个看起来难看是因为原始图标太小了。。推荐用 48x48、64x64、128x128(有点太大了)。。

你也可以在叠加图标尺寸上增加一个缩放因子,根据图标大小来匹配

也可以根据字符长度决定叠加区大小,这样可以显示任何东西

欢迎各位把自己得意的截图贴在回复里

打完收功。

------解决方案--------------------
这个功能不错,收藏
------解决方案--------------------
WPF的话就直接adorner
------解决方案--------------------
精益求精一下,这些元素全部都应该是draw出来,矢量化的,而不是bitblt
另外中间的底图应该是一个渐变笔刷
不过已经很好了,我在winform age只会bitblt,嘿嘿
------解决方案--------------------
你可以睡觉了
------解决方案--------------------
探讨

引用:
你可以睡觉了


睡完午觉起床

------解决方案--------------------
牛人呀
------解决方案--------------------
大牛,跟着学习一下先
------解决方案--------------------
绝对收藏!
------解决方案--------------------
好东西呀!收葳
------解决方案--------------------
学习了。。 不错的东西
------解决方案--------------------
有思想有行动
------解决方案--------------------
自主创新啊
------解决方案--------------------
假设这里的数字不是2,而是102,效果如何呢?
------解决方案--------------------
感谢分享!
------解决方案--------------------
感谢分享
------解决方案--------------------
感谢楼主分享!
------解决方案--------------------
感谢分享! 

------解决方案--------------------
厉害,你是行的
------解决方案--------------------
很好的一个小软件,但不完全不能存盘
------解决方案--------------------
挺有想法的