概叙
通过ICL (Image Converter Library)库里面的CImageDecoder,应用程序可以在他们的自定义UI中绘制动态图象。比如一个GIF文件。
解决方案:
ICL可以通过使用CImageDecoder::Convert()函数可以把动态图片的每一帧转换成CFbsBitmap位图。CImageDecoder::FrameCount() 返回图片的总帧数,CImageDecoder::FrameInfo(TInt aFrameNumber = 0)返回每帧的相关信息。
CImageDecoder::Convert() 必须在每个帧被调用. 转换是异步的, 一旦转换完成,请求的帧将返回一个CFbsBitmap 实例。
帧之间的延迟可以从TFrameInfo类中获得,通过使用这些信息,每个CFbsBitmap 可以一帧一帧的重现动画。
注意:在S60 2nd Edition中 CPAlbImageViewerBasic 类 已经被用来绘制动态图片。但是S60 3rd Edition中不支持。
通过ICL (Image Converter Library)库里面的CImageDecoder,应用程序可以在他们的自定义UI中绘制动态图象。比如一个GIF文件。
解决方案:
ICL可以通过使用CImageDecoder::Convert()函数可以把动态图片的每一帧转换成CFbsBitmap位图。CImageDecoder::FrameCount() 返回图片的总帧数,CImageDecoder::FrameInfo(TInt aFrameNumber = 0)返回每帧的相关信息。
CImageDecoder::Convert() 必须在每个帧被调用. 转换是异步的, 一旦转换完成,请求的帧将返回一个CFbsBitmap 实例。
帧之间的延迟可以从TFrameInfo类中获得,通过使用这些信息,每个CFbsBitmap 可以一帧一帧的重现动画。
注意:在S60 2nd Edition中 CPAlbImageViewerBasic 类 已经被用来绘制动态图片。但是S60 3rd Edition中不支持。