この記事は http://buildbox.net/?p=789 からの転載です。
Androidはスマホとタブレットなど、複数の解像度の端末が多数存在します。
何かと面倒だな・・・ということでタブレット対応を後回しにしがちですが、ルールがわかればそこまで難しいものではありません。
今回はタブレットとスマホの判別方法を記事としてまとめておきたいと思います。
Andorid 3.0(Honeycomb)が出た当初から、解像度としてはタブレットは画面サイズが600dp以上のものが対象とされています。
そのことは、Googleの公式ページでも解説されています。
さまざまな画面サイズのサポート
http://developer.android.com/intl/ja/training/multiscreen/screensizes.html
上記のサイトに有るとおり、layout-sw600dpにタブレット用のレイアウトを用意すれば、タブレットに対応が可能です。
しかし、ソースコード上で動的にタブレットの場合の挙動を変える必要があるかも知れません。
その時には、以下の様な手段を取ると良さそうです。
res/values/bools.xml
<resources>
<bool name="is_tablet">false</bool>
</resource>
res/values-sw600dp/bools.xml
<resources>
<bool name="is_tablet">true</bool>
</resource>
res/valuesとres/values-sw600dpにboolの値を定義し、sw600dpの時にtrueを返すようにします。
後は、ソース中で
getresources().getBoolean(R.bool.is_tablet);
と呼び出してやれば、タブレットの時にtrueが返ってきます。