我正处于我第一个正确的Android应用程序的计划阶段。部分简介是拥有一个非常“漂亮”的界面(又名大量的图形)。因为我是一名网络开发人员,而且我已经习惯了CSS的做事方式,所以我很难理解在构建布局时我将如何迎合所有不同的分辨率。简而言之,我的问题是:如何构建复杂,图像沉重的视图,可以在SoundHound等应用程序中看到(此处的示例视图,对于那些不熟悉此应用程序的人:http://getandroidstuff.com/wp-content/uploads/2010/09/SoundHound-Android2.jpg)?有没有一种方法可以像我在CSS中平铺的方式一样平铺图像?
答案 0 :(得分:1)
在开始设计主要布局之前,了解所有布局视图的工作原理非常重要。非常设计的Android OS支持扩展视图和GroupView。您需要使用dp(密度无关像素)单位。
在您提供的示例中,有一些不错的九个补丁PNG。如果在PC上,请检查C:\ android-sdk-windows \ tools \ draw9patch.bat。这些png可以作为任何分辨率的背景正确拉伸。
线性布局具有权重,允许您确定每个子项占用多少空间,类似于%中表的旧列宽。就像在旧的hml中一样,要创建一个丰富的布局,您可以使用嵌套的GroupViews(例如LinearLayout,RelativeLayout等),并使用像ImageView,TextView和son on等子视图填充它们。
也可以使用<b>,<i>
标签设置文字样式并具有
<img src="DrawableName">
查看示例:Html.ImageGetter
与嵌套布局相反的方法是使用RelativeLayout并确定每个子视图的位置,其顶部和左边距位于屏幕上任何位置,相对于其父RelativeLayout的左上角。
答案 1 :(得分:0)
Android有一些约定,可以帮助您解决不同的屏幕尺寸,屏幕密度,屏幕比例......
例如,有一个名为“drawable”的目录,您可以在其中放置应用程序的图像资源。但是,如果要为具有不同分辨率的设备发送应用程序,可以创建名为“drawable-ldpi”,“drawable-mdpi”,“drawable-hdpi”的其他文件夹。 ldpi文件夹包含用于低密度屏幕的图像资源,mdpi用于中等密度,hdpi用于高密度。文件夹名称是Android约定的一部分。在运行时加载图像资源时,例如在高密度设备上,系统正在drawable-hdpi文件夹中查找图像资源。没有该名称的图像,系统将在可绘制文件夹中查找。
此概念也适用于您在“layout”文件夹中定义的xml布局。也许你说当用户从纵向模式切换到横向模式时,homeScreen.xml的布局需要看起来不同。然后你可以创建一个文件夹“layout-land”。您在其中创建另一个homeScreen.xml并根据需要更改其外观。在运行时,系统会检测当前模式。如果在横向中,它将首先检查是否存在文件夹“layout-land”以及它是否包含具有正确名称的布局文件。如果没有,或者当用户以纵向模式切换回来并且没有文件夹“layout-port”时,系统会在“layout”文件夹中查找布局文件。
这只是其中的一小部分,但我希望,你乍一看,一切都是可以理解的。更多信息可以在in the official refrence
找到