Android开发-图形问题/XML

标签 android xml

Quick mockup of what I'm looking for

大家好!我是 android 开发的新手,在按照我想要的方式设置布局时遇到了一些问题。我在 Java 和面向对象的设计方面经验丰富,但我的标记/图形技能可能需要一些工作。

附件是我想要完成的大致内容。这将是一个基本的游戏——红色是 ImageViews,蓝色是按钮,绿色是标签。我需要帮助的事情:

-图像在高像素密度屏幕上非常小。无论设备是什么,我都可以让图像缩放到屏幕的一定百分比吗?我意识到图像可能会失真 - 这没关系。这些图像的质量不太重要。

-我应该如何处理 ImageView 和标签之间的差距?

非常感谢任何其他关于如何使用它的建议或代码!谢谢!

最佳答案

这看起来很简单。请注意,我下面的解决方案全部在 xml 中完成。

首先,您将需要不同屏幕密度的所有资源 - ldpi、mdpi、hdpi、xhdpi、xxhdpi。如果您不针对超小型手机,则可以跳过 ldpi。当然,xxhdpi Assets 将是最高分辨率,而 ldpi(如果您跳过 ldpi,则为 mdpi) Assets 将是最低分辨率。请注意,Android 对不同 dpi 之间的比率有特定的指导方针。也就是说,mdpi 图标是 ldpi 图标大小的“X”倍,等等。您可以用谷歌搜索比率并获得不同密度 (dpi) 的 Assets 。

现在为每种 Assets 类型创建单独的可绘制文件夹。您需要将它们命名为:drawable-ldpi、drawable-mdpi、drawable-hdpi 等。将 ldpi Assets 放在 drawable-ldpi 文件夹中,将 mdpi 放在 drarable-mdpi 等中。

现在,您很可能不需要为不同的屏幕创建不同的布局,但我稍后会讲到。

我的做法是将屏幕分成 4 个相对布局 - 2 个用于红色 ImageView ,1 个用于绿色标签,1 个用于蓝色按钮。使用 android:layoutAlignParentBottom = true 将蓝色相对布局锚定到屏幕底部。现在在蓝色相对布局中,要放置 5 个按钮,我会使用 TableLayout 并将其放在蓝色相对布局中。现在,开始将每个按钮添加为 TableRow 项。它们会自动均匀放置,但我建议给每个按钮一个填充 android:padding = "X dip"(set X)。

现在将绿色标签布局设置在蓝色相对布局之上。在其中添加标签。

现在将红色相对布局(有两个图像)设置在绿色布局和堆栈的顶部,以便底部与绿色相对布局的顶部对齐,顶部与第一行红色相对布局的底部对齐.添加一个 TableLayout 并添加两个图像。为了使它们更靠近顶部,请将 TableLayout 对齐到第二行相对布局的顶部,并提供一个填充以通过您提供的任何倾斜填充来插入图标。

现在,将第一个红色相对布局底部堆叠在第二行相对布局的顶部。使用 android:alignParentTop = true 将第一个红色相对布局的顶部设置为屏幕顶部。现在在此处添加另一个 TableLayout,并将 3 个图像添加为具有适当填充的 TableRow 项。

与锚定在屏幕底部的蓝色相对布局相关的所有操作将确保对称性。并且使用不同密度的图形会适当增加其中 Assets 的大小。

这样您就可以只拥有一个布局文件夹。但是,需要注意的是,在某些屏幕上,它可能看起来不像您想要的那样。如果它确实发生了,那么您可以为它创建一个单独的布局。

关于Android开发-图形问题/XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22394714/

相关文章:

java - 如何在 Android 中解析换行符分隔的 Json 响应?

java - 从 IntentService 传递数据

javascript - 如何使用 UTF-8 编码正确转义 XML 中的国际字符?

xml - WSO2 使用 xpath 获取 xml-content 属性中的元素

java - 将 java 程序与 android 应用程序连接

Android WebView 仅在第一次失败

java - 使用 xsd :assert? 基于非同级元素值的可选/强制元素

c# - 在 C# 中优化 XML

android - libgdx : Clicklistener doesnt work on resize

sql - Oracle - 如何捕获 XML 标签下的值