TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

Androidアプリの描画のスケーリング

Audio Spectrum Monitor - Apps on Google Playを2年半ぶりにアップデートした。

Android app on Google Play

Android2.1の時代に作成したアプリなので、その後に出てきた高解像度の画面で表示すると小さく表示される状態だった。
しばらく放置していたのだけど、FnCalc ボタンに式の割り当てが可能な履歴付き電卓 - Apps on Google Playを作ったことで、ちょっとプログラミング熱が蘇ったので、アップデート。

iPhoneアプリ‎「Audio Spectrum Monitor」をApp Storeでの方は、ピッチの解析精度が上がっているが今回は解像度対応のみとした。
いずれ解析精度もあげたいが、機械学習で精度を上げるアルゴリズムを考え中なので後回し。


高解像度対応は、意外と楽にできた。

SurfaceViewで描画している場合、
getWidth()とgetHeight()で幅と高さを取得して、
基準にする幅と高さで割って倍率を計算して、
描画時のx,y座標に掛けてやればよい。
縦横等倍にするには、倍率が小さい方を使う。

Canvas.scaleを使うと座標の計算も不要で自動で拡大縮小してくれるようだが、
今回は座標を自前で計算した。
Canvas.scaleを使ったほうが楽だったかもしれない。

ここのサイトが参考になる。
tatoapps.wordpress.com


Audio Spectrum Monitor

Audio Spectrum Monitor

  • Tadao Yamaoka
  • ミュージック
  • ¥120