[Android]SurfaceViewを使ってゲームを作った時に使った画面サイズに合わせて描画する方法をメモしておきます。Androidでは様々な画面サイズの端末が存在するため、ゲームなどでの描画処理に一工夫が必要です。Canvas.scaleを使って画面サイズに合わせて全体を拡大縮小します。これだけでは画面の左上に偏るので、画面の中心に描画されるようにcanvasを移動させます。移動にはCanvas.translateを使います。900;決めた画面サイズをもとに倍率を計算します。縦横比が異なる場合は小さい方に合わせます。onCreate内ではgetWidth()が0を返すので上手くいかない。この倍率から、拡大・縮小して描画します。描画処理holder.unlockCanvasAndPost(c);また、ゲームを作る場合は、これだけではゲームのタッチ入力を取得するときに問題が起きます。タッチ入力の座標は拡大・縮小されないため、ここにズレが生じるからです。そこで、タッチ入力の座標に関しても倍率を使って調整する必要があります。[未解決]MediaPlayerを使って動画プレイヤーを作っていたのですが、seekTo()が上手く動いていない様子でした。seekTo()を使うと指定した位置からずれた位置に移動してしまいます。解決はしていませんが、原因や試したことをメモしておきます。解決策をご存知ならば是非教えて下さい。調べた結果、次のような書き込みを見つけました。frame.(http://stackoverflow.com/questions/6845161/accuracy-of-mediaplayer-seektoint-msecsより)MediaPlayerのseekTo()では、指定した時間の近くのキーフレームにしか移動できないようです。0.1秒ごとにseekTo()してみると、一定の間は同じ場所に飛んで、急に少し先の場所に飛ぶ、というのが繰り返されていたのですが、このためだと思われます。そこで、seekTo()で移動した位置から実際に指定した位置まで再生して移動させようと試したのですが、これも上手くいきませんでした。{e.printStackTrace();}mediaPlayer.pause();しかし、getCurrentPosition()からはseekPositionが返ってきてしまって失敗。試してみて何か分かったら追記します。使用に同意したとみなされます。