Androidアプリ機種依存からの脱却

アンドロイドアプリを開発するに、機種に依存せずにあらゆるメーカーのスマホで問題なく動作させたいという欲求があります。この情報は多くの方が提供され大いに役立っています。

「画面サイズを攻略して機種依存を吸収する」などはありがたい記事です。この記事を受けて今回、当方のミスにより誤動作がありましたが解決に至ったくだりをメモにまとめます。

処理の概要はある画像を描画してその周辺に文字を表示させ回転させるというものです。画面サイズ(縦、横)を取得する関数を呼べば100%期待通りの動作になると思いきや、画面サイズが同じ値ながら画像が期待より大きく描かれ誤動作になりました。この原因が判明しましたので記録にとどめます。

HDPI

Android仮想デバイス・マネージャーを起動し、Device Definitionsを選択すると上左のような画面が現れ、様々な解像度のデバイスがあることがわかります。

一方、javaアプリプロジェクトをパッケージ・エクスプローラーで表示した図を右に示します。今回の失敗は画像ファイルをリソースフォルダres-drawable-mdpiにしか置いてないことが誤動作の原因でした。

たとえば、Galaxy Nexusを選ぶならばdrawable-xhdpiにも画像ファイルを置いておかないと期待した動作にならないようです。これらの規則性はまだ調査段階ですが、resフォルダのすべてのdrawableサブフォルダに画像ファイルを格納しておおむね期待した動作を得ていますがどうしても納得のいかない画面が表示されるものもあって今後の課題です。

コメントを残す

下記項目は必須ですがメールアドレスは公開されません。名前はニックネームをお使いください。

CAPTCHA