我需要知道 android 设备的屏幕尺寸以支持多种屏幕尺寸的应用程序。
8 回答
看这张表: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 操作系统会自动从中取出最合适的图像。
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 支持多种屏幕尺寸。没有特定屏幕尺寸的列表。只有大概的范围。在“支持多个屏幕”中阅读更多内容。
LDPI MDPI HDPI
请看这个:http: //developer.android.com/guide/practices/screens_support.html
然后这个:http: //developer.android.com/resources/dashboard/screens.html
然后这个:http: //developer.android.com/guide/topics/resources/providing-resources.html
在支持不同的屏幕尺寸方面,我会先看看Screen Support Reference,也许可以更好地解决您的问题。要查看特定尺寸的列表,请查看表 2
它来了!
- (240, 320)
- (240, 400)
- (320, 480)
- (360, 640)
- (480, 640)
- (480, 800)
- (480, 854)
- (540, 960)
- (600, 800)
- (600, 1024)
- (640, 960)
- (720, 1280)
- (768, 1280)
- (768, 1024)
- (800, 1280)
- (1080, 1920)
- (1200, 1920)
- (1600, 2560)
新鲜来自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)
}
希望它可以帮助