Main.storyboard怎样适配屏幕尺寸

2026年09月24日 15:07
有1个网友回答
网友(1):

你的应用应当包含可选的资源来优化应用外观,以便支持上述不同尺寸和像素密度的设备。有四种广义的尺寸:small, normal, large, xlarge。同样也有四种广义的像素密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。为了声明用于不同屏幕的不同layouts布局和bitmaps资源,你必须把这些可选的资源文件分别放在不同的目录,这一点类似于你在国际化时不同语言strings的操作。同时要注意屏幕的方向(landscape or portrait)也被认为是一种屏幕尺寸的变化,所以大多数应用都应该修改layout布局来提高用户在不同屏幕方向上的体验。创建不同的Layout布局文件-Create Different Layouts为了提高在不同设备屏幕上的用户体验,你应当为每一种你想要支持的屏幕尺寸创建一个独有的XML布局文件。每一布局文件应当存放到恰当的资源目录下,该目录以屏幕尺寸-作为后缀。例如,一个用于大屏幕的布局文件应当放在res/layout-large/目录下面。注:Android会自动缩放你的布局以便适配屏幕。这样,用于不同屏幕的布局文件就不必过多考虑UI元素的绝对大小,相反应当关注于布局的结构,这将直接影响用户体验(比如重要view视图的大小或位置应当相对于同级view视图)。例如,下面的项目包含了一个默认的layout和一个可选的用于大屏幕的layout目录:1 2 3 4 5 6MyProject/ res/ layout/ main.xml layout-large/ main.xml 目录中的布局文件名必须保持一致,但是它们的内容可以不同,以便提供优化的UI来支持相对应的屏幕尺寸。像往常一样在app中简单地获得layout布局文件的引用:1 2 3 4 5@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}Android系统将根据你的app应用所运行设备的屏幕尺寸从适当的layout目录加载布局文件。更多关于Android系统如何选择适当的资源文件可以在 [[Providing Resources | 资源提供 - Providing Resources ]]指导中获取。下面是另外一个案例,在这个项目中使用了可选的横向布局来支持横向屏幕:1 2 3 4 5 6 MyProject/ res/ layout/ main.xml layout-land/ main.xml By default, the layout/main.xml file is used for portrait orientation.If you want a provide a special layout for landscape, including while on large screens, then you need to use both the large and land qualifier: 1 2 3 4 5 6 7 8 9 10 MyProject/ res/ layout/ # default (portrait) main.xml layout-land/ # landscape main.xml layout-large/ # large (portrait) main.xml layout-large-land/ # large landscape main.xml 注:Android 3.2 及以上版本支持一种更好的方法来定义屏幕尺寸,它允许我们在与密度无关的像素情况下通过最小宽度和高度来为不同屏幕指定资源在。本章节中我们没有涉及该新特性。如果想获得更多相关信息,请阅读[[Designing for Multiple Screens | 多屏幕适配设计 - Designing for Multiple Screens ]]创建不同的Bitmaps资源-Create Different Bitmaps你应当为所有广义像素密度中的每一种都提供已经缩放好的适当的bitmap资源:低low, 中medium, 高high以及特高extra-high像素密度。这将使你的应用在所有分辨率的设备上都获得优良的图形质量和呈现效果。