前回作ったクラスMiniDroneActivityを拡張しドローンを操作できるコントローラー画面を作ります。
機能名 |
説明 |
View ID |
離陸/着陸 |
着陸状態で離陸ボタンを押すことで離陸します、 離陸すると離陸ボタンは着陸ボタンに変化します。 離陸状態で着陸ボタンを押すことで着陸します。 |
buttonLandOrTakeOff |
上昇 |
離陸状態で押している間は上昇する、離すと上昇は停止します。 |
buttonGazUp |
下降 |
離陸状態で押している間は下降する、離すと下降は停止します。 |
buttonGazDown |
左旋回 |
離陸状態で押している間は左回転する、離すと左回転は停止します。 |
buttonYawLeft |
右旋回 |
離陸状態で押している間は右回転する、離すと右回転は停止します。 |
buttonYawRight |
前進 |
離陸状態で押している間は前進する、離すと前進は停止します。 |
buttonForward |
後退 |
離陸状態で押している間は後退する、離すと後退は停止します。 |
buttonBack |
左移動 |
離陸状態で押している間は左移動する、離すと左移動は停止します。 |
buttonRollLeft |
右移動 |
離陸状態で押している間は右移動する、離すと右移動は停止します。 |
buttonRollRight |
メッセージ |
テキストメッセージを表示する。 |
textMessage |
2-レイアウトファイル
上記の機能を持つボタンを配置したレイアウトファイルを作成します。次回以降は下記の機能を順次実装していきます。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/piloting_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MiniDroneActivity">
<Button
android:id="@+id/buttonForward"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_above="@+id/buttonRollLeft"
android:layout_toRightOf="@+id/buttonRollLeft"
android:text="前進" />
<Button
android:id="@+id/buttonRollLeft"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_above="@+id/buttonBack"
android:layout_toLeftOf="@+id/buttonBack"
android:text="左移動" />
<Button
android:id="@+id/buttonBack"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_above="@+id/buttonLandOrTakeOff"
android:layout_toLeftOf="@+id/buttonRollRight"
android:text="後退" />
<Button
android:id="@+id/buttonRollRight"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_toLeftOf="@+id/buttonLandOrTakeOff"
android:layout_above="@+id/buttonBack"
android:width="20dp"
android:text="右移動" />
<Button
android:id="@+id/buttonLandOrTakeOff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/scrollViewMessage"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:text="離陸"
android:width="100dp" />
<ScrollView
android:id="@+id/scrollViewMessage"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true">
<TextView
android:id="@+id/textMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff0000" />
</ScrollView>
<TextView
android:id="@+id/labelMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="メッセージ: "
android:layout_above="@id/scrollViewMessage"
android:textColor="#ff0000" />
<Button
android:id="@+id/buttonYawRight"
android:layout_width="75dp"
android:layout_height="75dp"
android:text="右回転"
android:layout_alignTop="@+id/buttonYawLeft"
android:layout_toRightOf="@+id/buttonGazDown" />
<Button
android:id="@+id/buttonGazUp"
android:layout_width="75dp"
android:layout_height="75dp"
android:width="110dp"
android:text="上昇"
android:layout_toRightOf="@+id/buttonYawLeft" />
<Button
android:id="@+id/buttonGazDown"
android:layout_height="75dp"
android:width="110dp"
android:text="下降"
android:layout_alignTop="@+id/buttonBack"
android:layout_toRightOf="@+id/buttonYawLeft"
android:layout_width="75dp" />
<Button
android:id="@+id/buttonYawLeft"
android:layout_width="75dp"
android:layout_height="75dp"
android:text="左回転"
android:layout_toRightOf="@+id/buttonLandOrTakeOff"
android:layout_alignTop="@+id/buttonRollLeft" />
</RelativeLayout>