こんにちは😀
今回は、ボール傾きアプリの作成の続きです。
前回は、スマホのエミュレータでの傾き方をみました。
続けて、エミュレータの動きに合わせてどのように傾きを検知するかをみてみます。
onCreate関数
前回、onCreate関数をみましたが、その中身を作成します。
まずは、プロパティを作成します。
onCreate関数で使用するsensorManagerとsenserを定義します。
private var sensorManager: SensorManager by Delegates.notNull<SensorManager>()
private var sensor: Sensor by Delegates.notNull<Sensor>()
sensorManagerは加速度情報を取得するのに使用します。
sensorはsensorManagerをリスナーに登録するために使用します。
さらに、onCreate関数の中身を作成します。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// sensorManagerのインスタンスを取得
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
// リスナーの登録
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
}
5行目で「Context.SENSOR_SERVICE」を使用してインスタンスを行います。
7行目では、傾きのセンサーを定義する「Sensor.TYPE_ACCELEROMETER」を引数にしてリスナーへ登録します。
リスナーとは、イベントリスナーのことです。
イベントが発生した際に、何らかの処理を行うよう命令するのがイベントリスナーになります。
この場合は、加速度センサーにより、傾きの変化というイベントが起きた際に特定の処理を行いたいので、イベントリスナーに行う処理を登録しています。
実際にイベントが起こった際に行う処理は、このイベントリスナーに記述します。
今回の一言・・・
onCreate関数の中身とsensorManager、イベントリスナーに関する記述を行いました。
イベントとイベントリスナーの関係は、KotlinやJavaに限らず他の言語でも使用されるのでしっかり確認して起きたいところです。
ここまで読んでくれてありがとう。
では、また次回。
コメント