嘿大家!我是android开发的新手,在按我的方式设置布局时遇到一些问题。我对Java和面向对象的设计很有经验,但是我的标记/图形技能可以使用一些工作。
附件大致是我要完成的工作。它将成为一个基本的游戏-红色是ImageViews,蓝色是按钮,绿色是标签。我需要帮助的事项:
-在高像素密度的屏幕上,图像很小。不论设备是什么,是否都能使图像缩放到屏幕的特定比例?我意识到图像可能会失真-可以。这些图像的质量不是太重要。
-如何处理ImageView和Label之间的距离?
任何其他建议或有关如何使用此代码的代码将不胜感激!谢谢!
最佳答案
这似乎很简单。请注意,我下面的解决方案全部在xml中完成。
首先,您将需要使用不同屏幕密度的所有资产-ldpi,mdpi,hdpi,xhdpi,xxhdpi。如果您不针对超小型手机,则可以跳过ldpi。当然,xxhdpi资产将是最高分辨率,而ldpi(或者,如果您跳过ldpi,则为mdpi)资产将是最低分辨率。请注意,Android对于不同dpi之间的比率有特定的指导原则。也就是说,mdpi图标的大小是ldpi图标等的大小的“ X”倍。您可以使用比例搜索并获得不同密度(dpi)的资产。
现在为每种资产类型创建单独的可绘制文件夹。您需要将它们命名为:drawable-ldpi,drawable-mdpi,drawable-hdpi等。将ldpi资产放置在drawable-ldpi文件夹中,将mdpi放置在drarable-mdpi中,等等。
现在,您很有可能不需要为不同的屏幕创建不同的布局,但是我将稍作介绍。
我要这样做的方法是将屏幕分成4种相对布局-2用于红色图像视图,1用于绿色标签,1用于蓝色按钮。使用android:layoutAlignParentBottom = true将蓝色相对布局锚定到屏幕底部。现在在蓝色相对布局中,要放置5个按钮,我将使用TableLayout并将其放入蓝色相对布局中。现在,开始将每个按钮添加为TableRow项。它们会自动均匀放置,但我建议您为每个按钮添加android:padding =“ X dip”(设置X)作为填充。
现在,将绿色标签布局设置在蓝色相对布局的顶部。在其中添加标签。
现在,在绿色布局的顶部设置红色相对布局(具有两个图像),然后将其设置为绿色,使底部与绿色相对布局的顶部对齐,并且顶部与第一行红色相对布局的底部对齐。添加一个TableLayout并添加两个图像。为了使它们更靠近顶部,请将TableLayout与第二行相对布局的顶部对齐,并提供填充以通过您提供的任何浸入填充来推动图标。
现在,在第二行相对布局的顶部堆叠第一红色相对布局的底部。使用android:alignParentTop = true将第一个红色相对布局的顶部设置在屏幕顶部。现在在此处添加另一个TableLayout,并使用适当的填充将这3张图像添加为TableRow项。
与锚定在屏幕底部的蓝色相对布局有关的所有操作都将确保对称性。并且使用不同密度的图形将适当增加其中资产的大小。
这样,您就可以只拥有一个布局文件夹。但是,需要注意的是,在某些屏幕上,它可能不只是您想要的样子。如果确实发生,则可以为其创建单独的布局。