我需要知道Android设备的屏幕尺寸,以支持多种屏幕尺寸的应用程序。
我需要知道Android设备的屏幕尺寸,以支持多种屏幕尺寸的应用程序。
<supports-screens>
标签来指示你的应用支持哪些屏幕尺寸。同时,还需要注意清单文件中uses-sdk
标签的targetSdkVersion
属性。如果你的目标sdk版本过低,那么运行较高版本的设备(和模拟器)可能会切换到兼容模式,这可能会限制你的应用程序模拟HVGA屏幕。 - Ted Hopp不同的屏幕尺寸如下。
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操作系统将自动从中选择最合适的图像。
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支持多种屏幕尺寸,没有具体的屏幕尺寸列表,只有大致范围。更多信息请参阅“支持多个屏幕”。
来了!
使用以下代码从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)
public double getInchSize()
{
DisplayMetrics metrics = getResources().getDisplayMetrics();
return Math.hypot(metrics.widthPixels/metrics.xdpi, metrics.heightPixels/metrics.ydpi)
}
希望它能有所帮助