我有30多个单色位图(320x240像素),希望在Android设备上全屏显示,形成动画效果。目前我使用ImageView和Timer实现了动画,Timer设置下一帧并发送消息应用下一帧。结果帧速率非常低:<2 fps。
计时器:
处理程序:
计时器:
animationTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
Drawable frame = getNextFrame();
if (frame != null) {
Message message = animationFrameHandler.obtainMessage(1, frame);
animationFrameHandler.sendMessage(message);
}
}
}, 0, (int) (1000.0d / fps));
处理程序:
final Handler animationFrameHandler = new Handler() {
@Override
public void handleMessage(Message message) {
setImageDrawable((Drawable) message.obj);
}
};
为了达到每秒30帧的帧率,我需要使用另一种机制,听说过Canvas.drawBitmapMesh()和OpenGL。
如果可能的话,我想避免使用OpenGL。
感谢分享你的经验!