TadaoYamaokaの日記

山岡忠夫 Home で公開しているプログラムの開発ネタを中心に書いていきます。

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

音声スペクトルモニター - Google Play の Android アプリを2年半ぶりにアップデートした。

Android app on Google Play

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

iPhoneアプリiTunes の App Store で配信中の iPhone、iPod touch、iPad 用 AudioSpectrumMonitorの方は、ピッチの解析精度が上がっているが今回は解像度対応のみとした。
いずれ解析精度もあげたいが、機械学習で精度を上げるアルゴリズムを考え中なので後回し。


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

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

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

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


AudioSpectrumMonitor

AudioSpectrumMonitor

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