【Androidでドローン(マルチコプター)を飛ばそう】 ドローンを操作する画面を作ろう
1-MiniDroneActivityを拡張しよう
前回作ったクラスMiniDroneActivityを拡張しドローンを操作できるコントローラー画面を作ります。
機能名 | 説明 | View ID |
離陸/着陸 | 着陸状態で離陸ボタンを押すことで離陸します、 離陸すると離陸ボタンは着陸ボタンに変化します。 離陸状態で着陸ボタンを押すことで着陸します。 | buttonLandOrTakeOff |
上昇 | 離陸状態で押している間は上昇する、離すと上昇は停止します。 | buttonGazUp |
下降 | 離陸状態で押している間は下降する、離すと下降は停止します。 | buttonGazDown |
左旋回 | 離陸状態で押している間は左回転する、離すと左回転は停止します。 | buttonYawLeft |
右旋回 | 離陸状態で押している間は右回転する、離すと右回転は停止します。 | buttonYawRight |
前進 | 離陸状態で押している間は前進する、離すと前進は停止します。 | buttonForward |
後退 | 離陸状態で押している間は後退する、離すと後退は停止します。 | buttonBack |
左移動 | 離陸状態で押している間は左移動する、離すと左移動は停止します。 | buttonRollLeft |
右移動 | 離陸状態で押している間は右移動する、離すと右移動は停止します。 | buttonRollRight |
メッセージ | テキストメッセージを表示する。 | textMessage |
2-レイアウトファイル
上記の機能を持つボタンを配置したレイアウトファイルを作成します。次回以降は下記の機能を順次実装していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <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> |
![]() |
![]() |
||||
![]() |
![]() |
||||