アプリ開発日記(7)

2020/02/29-2020/03/01

Android版移植開始。
メイン画面のViewControllerをMainActivityに移植。
・Androidではレイアウトエディタを積極的に使ってXMLファイルに書いたほうがよい。
・コードでやると膨大になりがち。Kotlinの利点を活かせない。
・ボタンを並べるだけで1日かかった。
・Layout→Viewの関係を意識する。
・findViewbyID()を積極的に使う
・SetContentView()→FindViewById()の順
・lateinit varをよく使う。
・泥スタ重い。CPUとメモリが欲しい。
・GestureDetectorを使うとフリックのイベントが取れるらしいぞ。(備忘録)
・おまけ。水平プログレスバーはコードで作れる(らしい

2020/03/02

水平プログレスバーはコードで作れる。
GestureDetector意外とめんどい。親レイアウトではなく、ボタンが受け取るようにしたい。

2020/03/07まで

・フリック操作ボタン。Qiitaなどにサンプルがあったので基本コピペ。まだよく理解できていない。リスナがどのイベントを拾わなければいけないのか、とか。
・リスナの中でボタンIDごとにwhen文で返すラベル文字を切り替える方式。
・本当は「フリックボタン」というクラスを作って、そのインスタンスがフリックごとに文字を返すようにしたい。
・ボタンの描画。Widget.AppCompat.Buttonクラスは、矩形の中にグラフィックが書いてあるイメージ。マージンに見える部分までがボタンの矩形。いろいろプロパティを設定してみたが、iOSのような「角丸、ドロップダウンシャドウ付き」で色変えができない。仕方ないのでとりあえず平面ボタンにしている。たぶん自力でグラフィックリソースを用意すればできると思うけど。
・Buttonに対してsetBackgroundColor()したり、backgroundプロパティを設定すると、onClickのリスナを自分で設定してやらないといけないらしい
→OnTouchを拾ってACTION_DOWNでかくかisPressed = true,ACTION_UPでisPressed = falseにする。XMLのDrawableでSelectorを使い、pressed=trueとpressed=falseの時のDrawableを設定してやる。
・サウンド。リソースのrawフォルダにraw形式として入れる必要がある。ファイル名はa-z,0-9,_しか使えない。iOSは全角カナのファイル名でもアクセスできた。

2020/03/08

・サウンド。MediaPlayerを使いまわす。setDataSource()するためには、いったんMediaPlayer.reset()を呼ぶ。
・乱数 Random.nextInt(n)で0~n-1。

2020/03/10

GameControllerの移植。
Activityを継承していないので、getStringできない。Applicationオブジェクトにcontextオブジェクトを保存しておく
structはdata class。

2020/03/11

Userdefault.standardは。ちょっと使い方が違うぞ。

2020/03/12

残業でNoCode

2020/03/13

落ち込んでるがコードは書くぞ。
移植コード、コンパイルが通るようになった。挙動はおかしいが。

カテゴリー: ブログ パーマリンク