Androidカスタムviewキャッシュテクノロジー

863 ワード

Androidアプリケーションの開発過程では、自分でviewを書き直す必要があることがよくあります.一般的には、viewのonDrawメソッドを書き換えるだけでペイントの作業が可能ですが、多層かつダイナミックな効果に触れる場合は、処理せずにonDrawで直接ペイントするコストが非常に大きい場合があります.この場合、キャッシュ技法を適用する必要があります.
キャッシュ技術の原理は実は非常に簡単で、事前に表示する必要があるインタフェースをすべて描画して完成して、それからonDrawの中で直接キャッシュしたインタフェースを展示すればいいので、あまりオーバーヘッドをかける必要はありません.
ここでは、bitmapをキャッシュするメディアとして使用することができ、事前に対応するサイズのbitmapオブジェクトを作成し、その上にCanvasオブジェクトをセットしてからCanvas上に直接描画し、描画が完了すると、bitmapに保存されるのが最終的に表示するインタフェースです.
次はキャッシュを作成するプロセスです.一般的にはカスタムview作成時に一度だけ実行すればいいので、キャッシュholderを得ることができます.
//      
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
//          
Canvas canvas = new Canvas(bitmap);
//canvas    
......

//      ,     
holder = bitmap;

呼び出すときは、onDrawメソッドで、直接holderを描けばいいだけです.
canvas.drawBitmap(holder,x,y,new Paint());