Android 布局大小和调整大小
Android layouts size and resize
我正在做很多关于 android 布局的工作,但我仍然无法创建适用于每个 phone 的布局。我不确定创建布局的最佳方式,所以如果我错了请纠正我。请记住三件事:
- 屏幕像素(分辨率,例如 1080x1920 像素)
- 屏幕尺寸"inches"
- 屏幕密度 dp 或也称为 dpi(dp 是虚拟分辨率,对吗?)
要绘制适用于每个 phone 的布局(我的应用程序适用于 phones),我必须 "layout-kindofdensitydpi for every screen density (layout-ldpi,layout-mdpi,layout-hdpi,layout-xhdpi,layout-xxhdpi,layout-xxxhdpi) and draw " 手动创建目录吗?还有别的吗?
我做了一个测试,我创建了这6个目录并为每个分辨率手动绘制。这需要很多时间,而且分辨率为 768x1280 的设备我的应用程序不尊重我画的东西,例如不尊重空间,元素的搭配不正确,内部 ImageView 的框架布局不正确缩放。
我必须做什么?在某些 Android 书中没有提到元素无法调整大小,通常它们会解释如何在不分析调整大小的情况下在每个设备中放置一些文本或图像。
谢谢指教
你应该看看
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/screensizes.html
http://developer.android.com/training/multiscreen/index.html
我建议使用 layout-swXXXdp 或 layout-large 等代替 layout-KindOfDensitydpi
使用 RelativeLayout 创建您的相对布局并使用 LinearLayout 的权重。不要硬编码布局中的任何位置
使用
android:layout_width="match_parent"
android:layout_height="match_parent"
到外部布局以访问设备的全屏。
此外,如果您的 UI 中没有任何变化,那么您不需要创建不同的布局文件夹。
参考http://developer.android.com/training/multiscreen/screensizes.html
首先,您应该为 UI(RelativeLayout
或 LinearLayout
)找到合适的布局类型。有时使用良好的布局(或嵌套布局)可以使 UI 在每个屏幕上看起来都不错。我更喜欢 LinearLayout
因为我可以简单地为组件设置 layout_weight
。
然后在 dimens.xml
文件中为不同的密度或屏幕尺寸桶设置不同的尺寸。像这样:
你也可以使用match_parent
或wrap_content
如果不需要旋转,请不要忘记设置 activity 的屏幕方向。只有一个方向可以使设计更容易。
如果您无法使用上述提示做出良好的布局,您应该创建多个布局以适应每个屏幕尺寸或密度(屏幕尺寸和密度是两个不同的东西)。
您应该找到确定屏幕的最佳方法。
屏幕尺寸桶(小、正常、大和超大)选择适合屏幕(或最接近)的布局,密度桶(ldpi、mdpi、hdpi、xhdpi、xxhdpi 和 xxxhdpi)选择布局根据密度,或者最小宽度(我觉得跟密度差不多)
480dp是这两个设备的sw
您也可以针对不同的屏幕方向进行布局。
出于某种原因,我不喜欢为不同的屏幕创建布局。其中之一也是最重要的是,有时相同的屏幕尺寸具有不同的密度,这使得它变得困难且耗时。要创建布局,还应该提供大量图片。
我正在做很多关于 android 布局的工作,但我仍然无法创建适用于每个 phone 的布局。我不确定创建布局的最佳方式,所以如果我错了请纠正我。请记住三件事:
- 屏幕像素(分辨率,例如 1080x1920 像素)
- 屏幕尺寸"inches"
- 屏幕密度 dp 或也称为 dpi(dp 是虚拟分辨率,对吗?)
要绘制适用于每个 phone 的布局(我的应用程序适用于 phones),我必须 "layout-kindofdensitydpi for every screen density (layout-ldpi,layout-mdpi,layout-hdpi,layout-xhdpi,layout-xxhdpi,layout-xxxhdpi) and draw " 手动创建目录吗?还有别的吗?
我做了一个测试,我创建了这6个目录并为每个分辨率手动绘制。这需要很多时间,而且分辨率为 768x1280 的设备我的应用程序不尊重我画的东西,例如不尊重空间,元素的搭配不正确,内部 ImageView 的框架布局不正确缩放。
我必须做什么?在某些 Android 书中没有提到元素无法调整大小,通常它们会解释如何在不分析调整大小的情况下在每个设备中放置一些文本或图像。 谢谢指教
你应该看看
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/screensizes.html
http://developer.android.com/training/multiscreen/index.html
我建议使用 layout-swXXXdp 或 layout-large 等代替 layout-KindOfDensitydpi
使用 RelativeLayout 创建您的相对布局并使用 LinearLayout 的权重。不要硬编码布局中的任何位置
使用
android:layout_width="match_parent"
android:layout_height="match_parent"
到外部布局以访问设备的全屏。
此外,如果您的 UI 中没有任何变化,那么您不需要创建不同的布局文件夹。
参考http://developer.android.com/training/multiscreen/screensizes.html
首先,您应该为 UI(RelativeLayout
或 LinearLayout
)找到合适的布局类型。有时使用良好的布局(或嵌套布局)可以使 UI 在每个屏幕上看起来都不错。我更喜欢 LinearLayout
因为我可以简单地为组件设置 layout_weight
。
然后在 dimens.xml
文件中为不同的密度或屏幕尺寸桶设置不同的尺寸。像这样:
你也可以使用match_parent
或wrap_content
如果不需要旋转,请不要忘记设置 activity 的屏幕方向。只有一个方向可以使设计更容易。
如果您无法使用上述提示做出良好的布局,您应该创建多个布局以适应每个屏幕尺寸或密度(屏幕尺寸和密度是两个不同的东西)。
您应该找到确定屏幕的最佳方法。
屏幕尺寸桶(小、正常、大和超大)选择适合屏幕(或最接近)的布局,密度桶(ldpi、mdpi、hdpi、xhdpi、xxhdpi 和 xxxhdpi)选择布局根据密度,或者最小宽度(我觉得跟密度差不多)
480dp是这两个设备的sw
您也可以针对不同的屏幕方向进行布局。
出于某种原因,我不喜欢为不同的屏幕创建布局。其中之一也是最重要的是,有时相同的屏幕尺寸具有不同的密度,这使得它变得困难且耗时。要创建布局,还应该提供大量图片。