背景にアニメーション(短いビデオなど)を再現するライブ壁紙を開発しています。
さまざまなフルスクリーンサイズのビットマップを効率的にロードしてキャンバスに描画する方法を知っている人はいますか?私は2つのアプローチを試しましたが、どちらもあまり良くありません。
アプローチ#1:壁紙の起動時にすべてのビットマップをロードします。
問題:メモリ超過制限(約35MB)は、10ビットを超えるビット数をロードできません。そのため、アニメーションにはさまざまな画像がありません。
アプローチ#2:2ビットビットのみをロードします。実行時に、ビットマップをペイントし、古いビットマップを削除し、新しいビットマップをロードして、繰り返します。
問題:システムの多くを消費しますが(メモリではありませんが、一般的にOSの速度が低下します)、メモリ制限を超えないため、機能します。しかし、それでも、システム全体の速度が低下します。
例:
Drawer.drawAll(res,c,p);
res.removeOldBitmaps();
res.loadNewBitmaps(wpservice,display);
私が考えた別のアプローチは、別のスレッドにリソースをロードすることです。皆さんはそれについてどう思いますか?他に解決策はありますか?
乾杯!