複数の画面サイズのアプリケーションをサポートするには、Androidデバイスの画面サイズを知る必要があります。
次の表をご覧ください: http://developer.Android.com/guide/practices/screens_support.html#testing
ここで円グラフを使用して、相対的な画面サイズの使用状況を把握できます。 http://developer.Android.com/resources/dashboard/screens.html
画面サイズ、解像度、およびdpi値のリストについては、以下を参照してください。 http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density
実際のdpi値を計算するには、こちらを確認してください: http://en.wikipedia.org/wiki/Pixel_density#Calculation_of_monitor_PPI
さまざまな画面サイズは次のとおりです。
xlarge screens are at least 720dp 960dp
large screens are at least 480dp x 640dp
normal screens are at least 320dp x 470dp
small screens are at least 320dp x 426dp
複数のデバイスをサポートするアプリケーションを作成する場合は、異なるレイアウトを配置するために異なるレイアウトディレクトリを作成する必要もあります。
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
異なるサイズの画像を追加する予定がある場合は、それに応じて次のフォルダーに入れてください。 Android OSは自動的に最適な画像を取り出します。
res/drawable-ldpi/my_icon.png // bitmap for low density
res/drawable-mdpi/my_icon.png // bitmap for medium density
res/drawable-hdpi/my_icon.png // bitmap for high density
res/drawable-xhdpi/my_icon.png // bitmap for extra high density
Androidは多数の画面サイズをサポートしています。特定の画面サイズのリストはありません。おおよその範囲のみ。詳細については、 "Supporting Multiple Screens" をご覧ください。
さまざまな画面サイズをサポートするという点では、画面サポートリファレンスを見て、解決できるかもしれませんより良い問題。特定のサイズのリストを見るには、表2をご覧ください
ここに来る!
http://en.wikipedia.org/wiki/Comparison_of_Android_devices のhtmlソースからの解析:
import re
s = ""
with open("sizes.html", "r") as src:
s = src.read()
res = re.findall('([0-9]+)\s*[×xX]\s*([0-9]+)', s)
sizes = set()
for match in res:
size_int = [int(match[0]), int(match[1])]
size = (min(size_int), max(size_int))
if size not in sizes:
sizes.add(size)
sorted_sizes = list(sizes)
sorted_sizes.sort(key=lambda sz: sz[0])
for sz in sorted_sizes:
print(sz)
(私のPythonを許して)
マルチサイズ画面をサポートするために必要な場合に、デバイスのインチサイズを知るための小さな関数を次に示します。
public double getInchSize()
{
DisplayMetrics metrics = getResources().getDisplayMetrics();
return Math.hypot(metrics.widthPixels/metrics.xdpi, metrics.heightPixels/metrics.ydpi)
}
それが役立つことを願っています