显示
为了手机中显示各种特效,大都采用了以下两种方法:
1在表示像素点的颜色时,除了RGB三色分量外,还增加了一个ALPHA分量表示透明度。一个真彩色(指利用RGB分量合成颜色)的像素就变成由四个分量组成:R、G、B、A。设R、G、B、A均为从0到1的值,其中ALPHA=0为完全透明,ALPHA=1为完全覆盖,中间的数值代表半透明。这样的设定是为了能使本文独立于显示硬件。把诸如(R,G,B,A)这样的东西称为四元组。一个这样的四元组代表一个由R*A、G*A、B*A组合而成的颜色。
下面是如何根据ALPHA通道数据进行混合的算法:
简单地,我们只需要把需要组合的颜色计算出不含ALPHA分量的原始RGB分量然后相加便可。比如现在有两幅图象,分别称为图象A和图象B,由这两幅图象组合而成的图象称为C,则我们有如下的四元组:
A: (Ra,Ga,Ba,ALPHAa)
B: (Rb, Gb, Bb, ALPHAb)
和组合后的RGB三元组:
C: (Rc, Gc, Bc)
则:
Rc = Ra * ALPHAa + Rb * ALPHAb
Gc = Ga * ALPHAa + Gb * ALPHAb
Bc = Ba * ALPHAa + Bb * ALPHAb
便可得出混合后的颜色。
如果有多幅图像需要混合,则按照以上方法两幅两幅地进行混合。
2利用分层显示技术,将手机界面上显示的数据分成不同的图层来处理,这样每层的改动不会影响其它层,最后在将各层数据合成处理,得到最终显示效果。在程序中是将每层的数据存储在不同数组中,最后将所有的数据合成在一个数组中,最终的合成处理可以利用软件也可以利用硬件,硬件的处理速度更快。
注意事项:
1在手机中使用双或多字节表示一个字符的时候,对于字符的处理要特别注意,不要把表示一个字符的双或多字节分开,尤其是获取字符串长度、拷贝字符串和换行等处理时。
2大多数文字是从左边开始显示,但对于以色列文和阿拉伯文是从右开始显示。
3手机的处理速度和存储空间有限,通常是用2个字节,来表示一个像素点的数据。在程序中是利用数组存储数据,如LCD的像素是240*320,则定义的数组为:
U16 LCD[240*320];
4通常选中某个菜单时,如果菜单字符串无法一行显示完整,则会滚动显示字符串。但对于全触控操作的手机,无法利用方向键选中菜单,可以考虑长按某个菜单时滚动菜单字符串。
5对于带G-Sensor的手机,还需考虑界面旋转显示功能。
顶
0