課題
課題
-
2 人ぐらいのグループで、アプリ拡張に取り組みましょう。内容は自由です。
- お絵かきアプリとしての機能拡張(図形増やす、図形ごとに色付けを許可するとか)
- あるいは、ただの GUI ゲームっぽいものに魔改造とか。
- ネットワーク機能拡張(定期的に自動セーブ、画像に名前をつけて、デバイス間・ユーザ間で共有、共同編集可能お絵かきツールなどなど)
- 別に、分担して各機能拡張してもいいし、一つの機能を共同して開発してもいいし。
- step by step で拡張してもいいし、大規模改修を目指して(未完におわって)も構いません。
- お絵かきアプリとしての機能拡張(図形増やす、図形ごとに色付けを許可するとか)
-
終了時点で、最終プログラムと、達成した(あるいは目指した)アプリ・機能、自分が担当した部分に関する簡単な解説を1ページぐらいのレポート(絵込み)を pdf ファイルで提出してくれればOKです。
お絵かきツール拡張時のヒント
もともとの shapes
は android.graphics.RectF のリストを持っていました。
ただ、android.graphics.Canvas のメソッドを使って四角形以外の図形を書くには、
「RectF
以外に図形の種類や色などの情報をもった」オブジェクト(のクラス)を作って、そのリストを持っておくのが便利でしょう。
実装の仕方はいろいろありますけど、まずはいろいろトライしているとよいでしょう。
注意:
- 色情報は、
Color.BLUE
などで求められる、色相当の int を保存するのが楽かと思います。 - クラスを導入した際は、無引数 constructor をお忘れなく。
時間経過に応じて、モデルを変化させたい
モデルを定期的に変更したいのなら、Timer, TimerTask などを用いて定期的したいところです。
- 関連資料の説明をおこないます。
ただ、一般スレッドが UI データを直接操作するのはよくないので、実際には
android.os.Handler の post()
メソッドを通じてに UIスレッドに仕事を依頼することになります。
ただ、Handler
には postDelayed()
などのメソッドがあるので、このあたりをうまく使えば、定期的な処理も実現できそうです。