我正在做很多关于android布局的工作我仍然无法在每部手机中创建一个布局。我不确定创建布局的最佳方式,如果我错了,请纠正我。要记住三件事:
要在每部手机中绘制一个布局(我的应用程序适用于手机)我是否必须为每个屏幕密度创建一个目录" layout- kindofdensity dpi(layout-ldpi, layout-mdpi,layout-hdpi,layout-xhdpi,layout-xxhdpi,layout-xxxhdpi)和draw" manual"还是我必须做别的事?
我做了一个测试,我创建了这6个目录并为每个分辨率手动绘制。它需要很多时间,同时设备的分辨率为768x1280我的应用程序并不尊重我画的内容,例如空间不受尊重,元素的搭配不正确和框架布局使用ImageView里面没有缩放。
我该怎么办?在一些Android书籍中没有提到元素无法调整大小,通常它们会解释如何在没有分析每个设备的大小调整的情况下放置一些文本或图像。 谢谢你的建议
答案 0 :(得分:2)
首先,您应该为UI找到合适的布局类型(RelativeLayout
或LinearLayout
)。有时使用良好的布局(或嵌套布局)可以使UI在每个屏幕上都看起来很好。我更喜欢LinearLayout
因为我可以为组件设置layout_weight
。
然后在dimens.xml
文件中为不同的密度或屏幕尺寸存储桶设置不同的大小。像这样:
您还可以使用match_parent
或wrap_content
如果不需要旋转活动,请不要忘记设置活动的屏幕方向。有一个方向使设计更容易。
如果你不能使用上面的提示做出好的布局,你应该创建多个布局以适应每个屏幕尺寸或密度(屏幕尺寸和密度是两个不同的东西)。
您应该找到确定屏幕的最佳方法。
屏幕尺寸铲斗(小型,普通型,大型和Xlarge)选择适合屏幕(或最接近)的布局,密度桶(ldpi,mdpi,hdpi,xhdpi,xxhdpi和xxxhdpi)根据以下方式选择布局密度或最小宽度(我认为它与密度几乎相同)。
480dp是这两个设备的sw
您也可以为不同的屏幕方向制作布局。
我不喜欢因某些原因为不同的屏幕创建布局。其中之一也是最重要的是,有时相同的屏幕尺寸具有不同的密度,这使得它变得困难和耗时。要创建一个布局,你还应该提供很多图片。
答案 1 :(得分:1)
使用
android:layout_width="match_parent"
android:layout_height="match_parent"
到外部布局以访问设备的全屏。
此外,如果您的用户界面没有任何变化,那么您就不需要创建不同的布局文件夹。
参考http://developer.android.com/training/multiscreen/screensizes.html
答案 2 :(得分:0)
你应该看看
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的权重。不要硬编码布局中的任何位置