SurfaceTextureレンダラ ( 連続画像を画面に描画 )
SurfaceTexture に出力した画像を、画面に描画する方法を解説します。
前項「SurfaceTextureレンダラ ( 画像を1度だけ画面に描画 )」で作成したSurfaceTextureレンダラは、画像を1度だけ画面に描画するレンダラであり、画面に描画される画像が変わることはありませんでした。
本項では、SurfaceTextureレンダラを、連続画像を画面に描画するものに変更します。
解説
前項に対する処理の変更は以下です。
- 連続で「Surfaceでの描画」が行われるように、「Surfaceでの描画」関数の末尾に、0.1秒(100ミリ秒)後に、再度「Surfaceでの描画」を呼び出す処理を追加します。
- 「SurfaceTextureRenderer」クラスの「Surfaceでの描画」を、乱数を用いた描画に変更します。
- 「SurfaceTextureRenderer」クラスのメンバーに、乱数オブジェクトと、Handlerオブジェクトの変数を追加します。
実装
アプリの仕様
- アプリを起動すると、メインアクティビティが表示される。
- 背景色は、灰色。
- 0.1秒(100ミリ秒)ごとに、矩形と円が、ランダムな色、位置、大きさで表示される。
プロジェクトを開く
「SurfaceTextureレンダラ ( 画像を1度だけ画面に描画 )」で作成したプロジェクトを開きます。
クラスメンバー変数の追加
「SurfaceTextureRenderer」クラスのメンバーに、乱数オブジェクトと、Handlerオブジェクト、Runnableオブジェクト(とrun関数の定義)を追加します。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
「Surfaceでの描画」関数の変更
「SurfaceTextureRenderer」クラスの「Surfaceでの描画」を、乱数を用いた描画に変更します。
連続で「Surfaceでの描画」が行われるように、「Surfaceでの描画」関数の末尾に、0.1秒(100ミリ秒)後に、再度「Surfaceでの描画」を呼び出す処理を追加します。
リビルドし、エラー、警告がないことを確認します。
実行
Android端末にて、動作確認。
アプリを起動すると、メインアクティビティが表示されます。
背景色は、灰色。
0.1秒(100ミリ秒)ごとに、矩形と円が、ランダムな色、位置、大きさで表示されます。
ダウンロード
関連ページ
SurfaceTextureレンダラ ( 画像を1度だけ画面に描画 )
SurfaceTextureレンダラ ( 連続画像を画面に描画 ) - 本ページ
SurfaceTextureレンダラ ( 頂点バッファオブジェクトの利用 )