Androidアプリ作成講座 5-SurfaceViewをActivityにセットする

2018年8月8日

独自のSurfaceViewを作ったので、MainActivityに結びつけます。

MainActivityは、リソースで定義されているactivity_mainを画面として使っています。これを、作成したSurfaceViewに置き換えるコードを記述します。

MainActivityのソースを以下のように書き換えます。

package kunimiyasoft.circletest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    private MySurfaceView myView ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        myView = new MySurfaceView(this) ;
        setContentView(myView);
    
        // setContentView(R.layout.activity_main);
    }
}

SurfaceViewクラスの変数「myView」を定義します。このままではmyViewに実体がないので、newで領域を確保(インスタンス化)します。

setContentViewは、Activityにビューを結びつける関数です。デフォルトではXMLで定義されたactivity_mainを使っていますが、myViewに置き換えてしまいます。

これで、画面の描画はMySurfaceViewでの処理に委ねられました。試しにビルドして実行してみましょう。手順は既に紹介しましたが、「Build」「make Project」でビルドして、終わったら「実行(run)」ボタンでエミュレーターを起動します。

今までは「Hello World!」が表示されていましたが、今度は何も表示されないはずです。背景も黒で何もできないので終了しましょう。

まだMySurfaceViewには何も処理が書かれていないので、次の投稿から処理を書いていきます。

(LIST)Androidアプリ作成講座

Androidアプリ作成講座 プロローグ
Androidアプリ作成講座 1-プロジェクトを作る
Androidアプリ作成講座 2-プロジェクトを確認する
Androidアプリ作成講座 3-エミュレーター環境を作る
Androidアプリ作成講座 4-SurfaceViewクラスを作成する
Androidアプリ作成講座 5-SurfaceViewをActivityにセットする
Androidアプリ作成講座 6-SurfaceViewがイベントを受け取れるようにする
Androidアプリ作成講座 7-キャンバス上で描画する
Androidアプリ作成講座 8-円を描画する
Androidアプリ作成講座 9-デバッガを使ってみよう
Androidアプリ作成講座 10-Animationクラスを使う
Androidアプリ作成講座 11-円移動のソース