随笔-148  评论-1050  文章-1  trackbacks-4

Alpha Blending and Alpha Channel on Windows Mobile

      2007年的时候,Alex在《Compelling UI's in NetCF anybody?》一文中,讲述了windows mobile 5平台上如何利用AlphaBlend做很酷的透明图片界面。前不久的webcast24 Hours of Windows Mobile Application Development: Creating Compelling and Attractive UIs for Windows Mobile Applications》上,他讲述了目前windows mobile界面设计的趋势,其中也涉及到了Alpha Blending 和 Alpha Channel技术。下面对这两个概念进行解释。

    在百科全书wiki上,我们可以找到这个Alpha compositing的解释。在计算机图形学中,alpha compositing是一种结合图片和背景来创造部分透明效果的技术。Alpha Channel最早是由A. R. Smith20世纪70年代提出来,最终由Thomas PorterTom Duff1984年发展成熟。简单来说,传统的一个像素的颜色是用RGB来表示的,而在Alpha Channel中,需要加上第四个参数,如(0.0, 0.5, 0.0, 0.5)中,前面的三个参数“0.0, 0.5, 0.0”表示RGB,而第四个参数0.5表示Alpha。因此,在Thomas PorterTom Duff的论文中,他们利用Alpha值,定义了两张图片合成的5种运算(over,in,out,atop,xor),效果可以参考下图1

图15种运算效果图(图片摘自Alpha compositing

    目前,支持Alpha Blending的操作系统/GUI包括以下几种:

    从windows mobile 5.0开始,平台就已经支持Alpha Blending的本地调用了。在http://code.msdn.microsoft.com/uiframework这个课程代码中,我们可以看到,在工程中,他采用了P/Invoke

Code

 

    封装了DrawAlpha这个方法:

Code

 

    最后,作者给出了这个方法的应用,在桌面上显示天气的UI和图片的Slide Show。同时,可以使用下面的代码来隐藏title bar,并全屏显示应用程序。

Code

 

    另外,作者还给出了按钮浮起和按下状态的颜色变化处理,以及text文本嵌入的处理,大家有需要的话,可以下载过来参考一下。

    最终的显示效果如下图2所示:

图2:程序UI效果

    下图是Location平常状态与被按下时的对比:

图3:按钮的不同效果

参考链接:

AlexCompelling UI's in NetCF anybody?

MSDNAlphaBlend

Webcast24 Hours of Windows Mobile Application Development: Creating Compelling and Attractive UIs for Windows Mobile Applications

WikiAlpha compositing

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2009-03-05 16:37 施炯 阅读(2786) 评论(10) 编辑 收藏

评论:
#1楼 2009-03-05 16:43 | Jeremy Liu      
楼主辛苦了
 回复 引用 查看   
#2楼 2009-03-05 17:24 | U2U      
好东西,谢谢!
 回复 引用 查看   
#3楼[楼主] 2009-03-05 20:49 | 施炯      
@Jeremy Liu
@U2U
^_^

 回复 引用 查看   
#4楼 2009-03-06 09:21 | 啊黄      
老话题,
追求界面的美观,真是个永不老的话题!

 回复 引用 查看   
#5楼[楼主] 2009-03-06 09:46 | 施炯      
@啊黄
期待WM6.5的界面,虽然已经可以从网上看到一些了。

 回复 引用 查看   
#6楼 2009-03-06 15:52 | airwolf2026      
呃...俺最近在wince5.0上做的一个界面有用到这样的方法,,,可是背景还是不够透明...

对啦.另外msdn文档里面的SetColorKey 这个方法感觉讲的不够清楚啊.

 回复 引用 查看   
#7楼[楼主] 2009-03-06 16:25 | 施炯      
@airwolf2026
背景的透明度可以具体参数来设置,你说都不够透明是觉得透明效果不够?

 回复 引用 查看   
#8楼 2009-07-31 06:48 | Jake.NET      
好东西,谢谢。
 回复 引用 查看   
#9楼 2009-08-19 10:03 | libi[未注册用户]
没有下载啊
 回复 引用   
Locations of visitors to this page
欢迎访问施炯的技术博客,这是一个专注于移动开发的平台,致力于Windows Phone、Windows Mobile和Windows Embedded CE应用开发。

MVP
我的MVP配置


Get Microsoft Silverlight
昵称:施炯
园龄:3年4个月
粉丝:96
关注:13
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

搜索

 
 

常用链接

最新随笔

我的标签

随笔档案(148)

文章档案(1)

Microsoft Most Professional

Mobile Blogs

Mobile Portal

MSDN Blogs

MVPs' Blogs

My Blog

My Portal

Windows Phone

积分与排名

  • 积分 - 262745
  • 排名 - 283

最新评论

阅读排行榜

评论排行榜

推荐排行榜