I ' У меня есть более 30 отдельных растровых изображений (320x240 пикселей), которые я хотел бы отображать одно за другим в полноэкранном режиме на устройствах Android, что привело бы к анимации. В настоящее время я реализовал анимацию с использованием ImageView и таймера, который устанавливает следующий кадр, а затем отправляет сообщение, которое применяет следующий кадр. В результате частота кадров очень низкая: <2 кадра в секунду.
Таймер:
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.
Спасибо, что поделились своим опытом!