0

我有一个活动,我显然有一个布局。布局的背景是一张图片,TextView 的放置需要在一个精确的位置。当我将 TextView 放置在任何布局中时,位置不会像我预期的那样随着背景图像的缩放而改变。

如何让 TextView 根据屏幕大小进行缩放?

最简单的解决方案将被接受。

巴特讲话泡泡

4

2 回答 2

0

您的问题有点含糊,但假设您的目标是“将 TextView 放在上图中的对话气泡上”,您可能还有一些工作要做。您可以尝试使用边距等来使其在语音图像上精确放置,但这将非常棘手,并且可能永远不会完全按照您的意愿工作。您最简单的选择是执行以下操作

  1. 使用 Photoshop、Paint 或几乎任何编辑程序来剪切 Bart 和对话气泡并将它们保存为单独的图像。
  2. 使用将背景颜色设置为 black 的 RelativeLayout android:background="@android:color/black"
  3. 使用 Bart 的图形放置一个 ImageView,并在其上设置以下属性:android:layout_alignParentLeft="true"android:layout_alignParentBottom="true"和 `android:id="@id/img_bart"。
  4. 放置一个 TextView,将背景设置为使用语音气泡图像(android:background="@drawable/img_speech"或任何您称之为语音气泡图像),将其设置为显示在 Bart 的右侧android:layout_toRightOf="@id/img_bart",然后将其捕捉到顶部(android:layout_alignParentTop="true"- 这可能会导致高屏幕出现问题但是),或通过android:layout_alignParentBottom="true"和以适当的量捕捉到底部偏移量android:layout_marginBottom="150dp",修改 150 以使其相对于 Bart 出现在正确的高度。

我知道这是一项相当大的工作,不幸的是,Android 布局通常是这样,尤其是在您希望以适当的方式将不同的元素粘在一起的情况下,例如气泡。

您可以查看的另一件事是 AbsoluteLayout,它允许您将子元素放置在确切的位置 - 但是强烈建议不要这样做,因为它不能很好地扩展到不同的屏幕尺寸,并且 AbsoluteLayout 类本身已被弃用并且一直存在很久。

于 2012-11-12T01:33:57.860 回答
0

最好的方法是,如果它们还没有,则从中创建 2 个图像。一个是巴特,另一个是讲话泡泡。为每个图像创建 ImageViews,将 Bart 设置在左下角,将对话气泡设置在右上角。然后,您可以将 TextView 创建为 size:wrap_content,并将其拉伸到气泡的大小。然后将 TextView 的重力设置为中心,您将能够让所有文本在对话气泡内居中。

于 2012-11-12T01:38:15.167 回答